Jump to Navigation

关于Qt的应用与定制

很长时间没有写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了,有时间多了解了解。

Category:

添加新评论

Plain text

  • 不允许HTML标记。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.


Main menu 2

Story | by Dr. Radut