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中设计用户登录对话框即可,然后嵌入其中即可,如下图所示:

0 0
原创粉丝点击