加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2021-12-10 19:48:00 所属栏目:PHP教程 来源:互联网
导读:1.对于QTabWidget中tab名字的变化。当其中只有一个时,Qt Assistant中给出的解释是:If the tabs label contains an ampersand, the letter following the ampersand is used as a shortcut for the tab, e.g. if the label is Browse then Alt+W becomes a s
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时间,要设置时间,这个时间是一个经验值,不好控制。

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读