public:it:qt

Qt

  • 如果要在非主线程运行qt——比如包装在dll里供非qt程序调用qt界面——那么要确保 QObject 不能在 QCoreApplication 之前实例化,即不能用 QThread 来执行创建运行 QCoreApplication , 因为QThread 必定比 CoreApplication 早实例化。 可以使用原生线程,或者 std::thread, 来确保。
  • 隐藏控件后仍然占位不重新排版的方式(qt5.2之后):setRetainSizeWhenHidden
    QSizePolicy sp = widget->sizePolicy(); // widget 是要隐藏的控件
    sp.setRetainSizeWhenHidden(true);
    widget->setSizePolicy(sp);
  • 坑:widget 的 visible 属性是个即时结果值,受父窗口链影响。
    • 官方文档:Calling setVisible(true) or show() sets the widget to visible status if all its parent widgets up to the window are visible.
    • 只有父窗口链都可见时它才是可见的,此时 visible 才是 true。所以窗口初始化时(主窗口未显示时), 所有子控件 visible 都是 false。
  • public/it/qt.txt
  • 最后更改: 2021/11/26 15:13
  • oakfire