设为首页 加入收藏

TOP

在调用Qt库来实现功能过程中的一些总结
2015-08-31 21:23:04 来源: 作者: 【 】 浏览:19
Tags:调用 实现 功能 过程 一些 总结

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时间,要设置时间,这个时间是一个经验值,不好控制。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇read命令读取用户输入 下一篇最大子序列和问题之算法优化

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: