当前位置:   article > 正文

Qt之界面实现技巧_qt界面设计

qt界面设计

一、主界面

1、无边框

setWindowFlags(Qt::FramelessWindowHint

2、界面始终位于顶部位置

setWindowFlags(Qt::WindowStaysOnTopHint

3、任务栏图标点击时进行显示/不显示切换

setWindowFlags(Qt::WindowMinimizeButtonHint

4、隐藏任务栏显示

setWindowFlags(Qt::Tool | Qt::X11BypassWindowManagerHint)

5、关闭按钮实现的功能

  1. hide(); //进行界面隐藏,但是显示托盘,可通过点击托盘实现界面的重新显示
  2. quit(); //退出系统

6、绘制背景图片并且实现圆角效果

  1. void LoginDialog::paintEvent(QPaintEvent *)
  2. {
  3. QPainter painter(this);
  4. QBrush brush;
  5. brush.setTextureImage(QImage(background_image)); //背景图片
  6. painter.setBrush(brush);
  7. painter.setPen(Qt::black); //边框色
  8. painter.drawRoundedRect(this->rect(), 5, 5); //圆角5像素
  9. }

7、设置应用程序的字体

  1. QFont font("Courier", 10, QFont::Normal, false);
  2. QApplication::setFont(font);

8、设置组件字体

  1. QFont font = this->font();
  2. font.setFamily("Courier"); //字体名称
  3. font.setPixelSize(16); //字体点大小
  4. font.setPointSize(18); //字体像素大小
  5. font.setBold(true); //是否加粗
  6. font.setItalic(true); //是否斜体
  7. font.setUnderline(true); //是否下划线
  8. this->setFont(font);
  9. 字体风格,包括类型、大小、是否加粗、是否斜体等!

也可以使用:setStyleSheet("text-align:center; font-size:18px; font-weight:bold; font-style:Courier; color:white; ");

setAlignment(Qt::AlignCenter); //设置对齐方式

二、全屏显示与还原

关于这个问题,当做一个大的标题来讨论,因为比起其它小技巧要稍微复杂一些!

全屏显示:

1、遮挡任务栏:

showFullScreen()、showMaximized()这两个都可以!

2、不遮挡任务栏:

  1. void MainWidget::showMaximize()
  2. {
  3. //若已经最大化
  4. if(is_max)
  5. {
  6. //恢复界面位置,并设置按钮图标为最大化图标,提示“最大化”
  7. this->setGeometry(location);
  8. max_button->setIcon(QIcon("maxbtn"));
  9. max_button->setToolTip(tr("max"));
  10. }
  11. else
  12. {
  13. //设定当前界面的位置,还原时使用
  14. location = this->geometry();
  15. //获取桌面位置,设置为最大化,并设置按钮图标为还原图标,提示“还原”
  16. QDesktopWidget *desk = QApplication::desktop();
  17. this->setGeometry(desk->availableGeometry());
  18. max_button->setIcon(QIcon("restorbtn"));
  19. max_button->setToolTip(tr("restor"));
  20. }
  21. is_max = !is_max;
  22. }

注意:窗口既然可以最大化,当然还要进行还原,is_max为一个bool值变量,表示窗口是否最大化,初始值为false。location为桌面的位置,每次最大化开始先记录当前的位置,等待还原时候使用。

三、QSS样式

1、QComboBox:

  1. combo_box->setStyleSheet("QComboBox{border:1px solid gray;}"
  2. "QComboBox QAbstractItemView::item{height:25px;}"
  3. "QComboBox::down-arrow{image:url(:/icon/arrowdown);}"
  4. "QComboBox::drop-down{border:0px;}");
  5. combo_box->setView(new QListView());

2、QSpinBox:

  1. spin_box->setStyleSheet("QSpinBox{border:1px solid gray;}"
  2. "QSpinBox::up-button{image:url(:/icon/arrow_up);}"
  3. "QSpinBox::down-button{image:url(:/icon/arrow_down);}");

3、QMenu:

  1. QMenu{
  2. padding:5px;
  3. background:white;
  4. border:1px solid gray;
  5. }
  6. QMenu::item{
  7. padding:0px 40px 0px 30px;
  8. height:25px;
  9. }
  10. QMenu::item:selected:enabled{
  11. background:lightgray;
  12. color:white;
  13. }
  14. QMenu::item:selected:!enabled{
  15. background:transparent;
  16. }
  17. QMenu::separator{
  18. height:1px;
  19. background:lightgray;
  20. margin:5px 0px 5px 0px;
  21. }

4、QSlider:

  1. QSlider::groove:horizontal{
  2. border:0px;
  3. height:4px;
  4. }
  5. QSlider::sub-page:horizontal{
  6. background:white;
  7. }
  8. QSlider::add-page:horizontal{
  9. background:lightgray;
  10. }
  11. QSlider::handle:horizontal{
  12. background:white;
  13. width:10px;
  14. border-radius:5px;
  15. margin:-3px 0px -3px 0px;
  16. }

 进群领取qt开发学习资料以及技术交流  在下方↓↓↓↓↓↓↓↓

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/137484
推荐阅读
相关标签
  

闽ICP备14008679号