Qt之统一的UI界面格式基调,漂亮的UI界面
来源:互联网 发布:matlab编程pdf 编辑:程序博客网 时间:2024/05/21 06:17
一、将标题栏和状态栏以及中央部件集成于一个类中
单独作为一个类,提供标题栏和状态栏以及中央部件指针成员;
class QBaseWidget : public QFrame{QVBoxLayout *m_pMainLayout; //主布局QTitleBar *m_pTitleBar; //标题栏QWidget *m_pContentWidget; //内容区域,中央部件QStatuBar *m_pStatuBar; //状态栏}
代码如上所示,当然QTitleBar和QStatuBar都是自定义的类,需要自己处理,如增加最小化按钮,最大化按钮按钮,关闭按钮,鼠标位置判断以及窗口多动,这样你可以做成你自己想要的任何标题栏和状态栏以及中央部件,m_pContentWidget成员变量只是保持一个指针而已,以后如果你要把你做的内容窗口嵌入到该类中,只是赋值即可,m_pMainLayout就是类的主布局了;写到这里,大家觉得是不是有点像QMainWindow类的处理过程了;
二、为标题栏和状态栏提供修改接口
在有些窗口中,可能不需要状态栏,例如程序的关于对话框,因此这时就应该提供外部接口供调用者使用,表示标题栏和状态按是否需要;
QBaseWidget(bool bShowTitleBar,QWidget *pContentWidget,bool bShowStatuBar,QWidget *parent = 0);
三、为标题栏按钮提供修改接口
并不是所有的窗口都有最大化和最小化以及关闭按钮,例如对话框窗口,就只有关闭按钮了,那么最小化以及最大化按钮当然就不要了;所以需要提供外部接口给调用者使用:
void setWidgetBtnShow(bool bMinBtnShow,bool bMaxBtnShow,bool bCloseBtnShow);
参数的含义依次表示是否显示最小化按钮,是否显示最大化按钮,是否显示关闭按钮.
四、将自己的内容部件嵌入到QBaseWidget中
上述只是讲解了怎么修改自己的外观;当然,最主要的还是要把自己的内容部件潜入到其中,例如你在Qt Designer中设计了一个窗口,你想把这个窗口套在其中,则:
QBaseWidget(bool bShowTitleBar,QWidget *pContentWidget,bool bShowStatuBar,QWidget *parent = 0);
只要将自己设计的内容部件的指针赋值给pContentWidget即可,这样就自然套上了统一的标题栏和状态栏以及中央部件样式.
五、统一外观设置
在整个项目中,当然希望所有的窗口界面的色彩格调保持一致了,这时只要美化上述中所述的标题栏,状态栏以及中央部件即可,而且只要写一处代码即可哦.
六、程序示例
最后,给大家截图看看实现效果,统一格式的标题栏,状态栏以及中央部件的格式;由于工程是用于实际项目中,所以这里只截取了用户登录对话框以及关于对话框界面,其他界面不提供,谢谢
七、界面设计
用户只需要设计中央部件即可,其他的就不要了,如上图中的用户登录对话框,用户只需要在Qt Designer中设计用户登录对话框即可,然后嵌入其中即可,如下图所示:
- Qt之统一的UI界面格式基调,漂亮的UI界面
- Qt之统一的UI界面格式基调,漂亮的UI界面
- 【转】Qt之统一的UI界面格式基调,漂亮的UI界面
- Qt之统一的UI界面格式基调,漂亮的UI界面
- Qt ui界面文件的调用--quiloader
- vs2013打开Qt的UI界面时打不开
- 免费素材下载:一套漂亮的卡通UI界面
- UI界面的更新
- spark的UI界面
- ExoPlayer的使用之自定义UI界面
- Android 简单炫酷的UI界面 之欢迎界面
- QT入门之UI设计界面
- 基于Qt的ui图形化界面进行的界面设计
- qt的ui界面改变了,可运行结果却没变
- QT环境下实现UI界面的拼图
- QT环境下实现UI界面的“拼图游戏”
- 关于iMX6Q QT 在UI界面显示中文的问题!
- 我的猎人UI界面
- vim无法安装问题
- 用apktool工具反编译apk后怎么得到源码,重新打包,签名
- cocoapods版本更新,以及多个版本的问题
- Java 冒泡排序,选择排序,二分查找
- 十三、java 常用工具类使用UUid、日期处理、MD5加密
- Qt之统一的UI界面格式基调,漂亮的UI界面
- [BZOJ3270][高斯消元][概率与期望]博物馆
- CentOS6.8下源码安装mysql5.6.21
- svn: E155004错误的解决办法
- Samba服务器配置
- 关于http协议
- 关于c#调用win32api
- 开通博客啦
- hadoop中mapreduce参数优化