在调用Qt库来实现功能过程中的一些总结

1.对于QTabWidget中tab名字的变化。当其中只有一个&时,Qt Assistant中给出的解释是:If the tab's label contains an ampersand, the letter following the ampersand is used as a shortcut for the tab, e.g. if the label is "Bro&wse" then Alt+W becomes a shortcut which will move the focus to this tab。所以要实现tab标题中带&,则成对输入即可:"&&"表示"&","&&&&"表示"&&"。

2.对于Qt中的窗口,在使用setParent(0)的时候需要注意的地方:

Linux下QDockWidget弹出来,不想让原来的窗口为父窗口,设置了setParent(0),弹出来之后无法获取当前窗口的焦点。因为调用了setParent(0),会移除这个焦点,并且会清楚Qt::Window标记位(只有QMainWind和QDialog会默认有这个flag),所以解决办法是通过当前的dock_widget->setWindwowFlags(Qt::FramelessWindowHint),来设置其为window的flag。在实际做的时候,dock_widget是自己从QDockWidget派生出来的一个累,没有使用window框,所以用这个标记位来设置。

很奇怪的是Windows不需要设置也是正常的。

3.关于模态窗口:

在使用QDialog时,若调用show(),则会让当前窗口成为模态,并且block后面所有得窗口,若想前面窗口和后面窗口同步操作,则可以通过以下2种方法实现(本质上应该算一种):

1)qApp->processEvents();

2)QTimer::singleShot(200, view, SLOT(qApp->processEvents()));//方法2)是之前网上找到的

view->setWindowFlags(Qt::WindowStaysOnTopHint);

其中view为当前窗口。

具体的函数定义可以参考Qt使用手册,推荐使用第一种方法,因为第二种是一个QTimer时间,要设置时间,这个时间是一个经验值,不好控制。

Ubuntu 环境下Gtk与QT编译环境安装与配置

Linux系统下QT环境搭建

Ubuntu下QT控制台程序无法运行的解决方案以及XTerm的配置方法

Ubuntu 10.04下QT4.7.4移植详解

Ubuntu 14.04下安装部署Qt5开发环境

Qt 的详细介绍请点这里
Qt 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/f3c00a0ad15c67808eec48e579718075.html