关于Qt的应用与定制 |
发布: 2013-10-06 20:42 |
很长时间没有写Qt的代码了,这几天又写了一些Qt的代码, 对Qt的的应用,特别是界面部分类的应用,有了一点新的认识。 Qt开发库已经非常成熟强大,不过,对于像软件的写界面部分, 自带的都是比较中规中矩的外观形状。 即使Qt的定制性非常强,如果希望能调整成需要的效果, 还是需要做些扩展功能。 现在开始使用Qt5开发应用,也就使用了Qt5的一些特性, 但本次讲解不以这个Qt5的特性为主,还是以基础的通过窗口类为主。 在本次编写代码过程中,总结出了几个比较实用的窗口定制成果, 1、配置对话框的列表栏 这个涉及到QListWidget类,其实是想把列表栏的图标选项调整高些, 而不是默认的QListWidget行距和默认选中模式。 其实这个很简单, 只需要几行代码, // 设置listWidget中的项目选中区域 this->uiwin.listWidget->setIconSize(QSize(32,32)); QListWidgetItem *item = NULL; for (int i = this->uiwin.listWidget->count() - 1; i >= 0; --i) { item = this->uiwin.listWidget->item(i); item->setSizeHint(QSize(120, 50)); } 本人编写桌面程序比较少,对这些界面的调整不太熟悉,这也是经过多次测试调整才得出来的。 2、Qt的stylesheet 这几天遇到的问题,希望扩展QStatusBar类,支持在状态栏上放一些信息与控制组件。 扩展出来一个新的XStatusBar,使用QStatus类的方法添加像按钮类组件, 但添加后这些新组件外观都显示了边框,按照当前设计习惯,尽量好扁平化。 查找Qt手册,希望能有相应的方法去掉新加组件的边框,即没有找到。 最后使用了Qt的stylesheet,一行代码解决。 在扩展的XStatusBar类添加一行初始化代码, this->setStyleSheet(QStringLiteral("QStatusBar::item {border: none;}")); 如果希望能简单的调整出希望的界面外观,还需要学习下Qt的stylesheet啊。 当然,深度定制,可能还需要编写大量的代码。 Qt已经进入到V5了,有时间多了解了解。 |
原文: http://qtchina.tk/?q=node/769 |
Powered by zexport
|