====== Qt ====== * Official Site: [[https://www.qt.io/|qt.io]] * Qt VS tools: https://marketplace.visualstudio.com/items?itemName=TheQtCompany.QtVisualStudioTools2019 * Download: http://download.qt.io/ * 在线安装版本:https://download.qt.io/official_releases/online_installers/ ===== Tips ===== * 如果要在非主线程运行qt——比如包装在dll里供非qt程序调用qt界面——那么要确保 QObject 不能在 QCoreApplication 之前实例化,即不能用 QThread 来执行创建运行 QCoreApplication , 因为QThread 必定比 CoreApplication 早实例化。 可以使用原生线程,或者 std::thread, 来确保。 * 隐藏控件后仍然占位不重新排版的方式(qt5.2之后):[[https://doc.qt.io/qt-5/qsizepolicy.html#setRetainSizeWhenHidden|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。