找回密码
 立即注册
12
返回列表 发新帖
收起左侧
楼主: z55716368

一些小控件的用法和一些问题的请教

29
回复
14981
查看
[复制链接]
累计签到:256 天
连续签到:1 天
2015-5-4 12:07:33 显示全部楼层
一叶知秋 发表于 2015-5-4 11:54
你是指哪个距离比较远,我没太懂

比如 控制器地址和groupbox上面的距离 确定按钮和下面的距离
还有 那个Qcombobox的样式我想换换 QSpinbox的上下键怎么换成像combobox的黑色的?
回复

使用道具 举报

累计签到:882 天
连续签到:3 天
2015-5-4 13:09:55 显示全部楼层
1.首先需要说明的是,如果你的界面是固定大小,那么在一个固定大小的区域里,要么让控件尽可能的大,来填充多于的地方,要么就让控件间的间距变大来占据更多的空间,所以你可以调整整个界面的大小,或者去调整垂直布局的margin和space
2.至于那个黑色,可能就需要QSS来做了,这个需要你找些资料看看了,送你一套QSS慢慢学习吧

回复

使用道具 举报

累计签到:882 天
连续签到:3 天
2015-5-4 13:11:56 显示全部楼层
  1. /*---------------------------------------------------------------主要设置----------------------------------------------------------------*/

  2. *{
  3.   font-size:13px;
  4.   color:white;
  5.   font-family:"宋体";
  6. }

  7. CallWidget QLineEdit#telEdt
  8. {
  9.   font-size:24px;

  10. }

  11. QMainWindow,QDialog{
  12.     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,        /*背景*/
  13.                                  stop: 0 #113845,
  14.                                  stop: 1.0 #15A8FF);
  15. }
  16. QWidget{
  17.     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,        /*背景*/
  18.                                  stop: 0 #113845,
  19.                                  stop: 1.0 #15A8FF);
  20. }

  21. QLabel{
  22.    background:transparent;
  23. }

  24. QTreeWidget{
  25.     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,        /*背景*/
  26.                                  stop: 0 #113845,
  27.                                  stop: 1.0 #15A8FF);
  28. }


  29. /*--------------------------------------------------以下为菜单的设置---------------------------------------------------------------------------*/
  30. /*设置整条菜单栏的颜色,现在为橙红色*/
  31.   QMenuBar {
  32.     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,        /*背景*/
  33.                                  stop: 0  #15A8FF,
  34.                                  stop: 1.0 #113845);
  35. }

  36. QMenuBar::item {
  37.      spacing: 3px; /* spacing between menu bar items */
  38.      padding: 1px 4px;                       
  39.      border-radius: 1px;
  40.      font:#BBDDFF;
  41.     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,        /*菜单最顶层如“Flie”的背景颜色*/
  42.                                  stop: 0 #113845,
  43.                                  stop: 1.0 #15A8FF);
  44. }

  45. QMenuBar::item:selected { /* when selected using mouse or keyboard */
  46.      background: #1A2432;                        /*当鼠标移动到菜单项上面或者通过键盘使菜单项得到光标时显示的颜色*/
  47.      font:#FFFFFF;
  48. }

  49. QMenuBar::item:pressed {
  50.      background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
  51.                                        stop:0 #10151E, stop:1 #2C547E);
  52.      font:#FFFFFF;

  53. }
  54. QMenuBar::item:hover{
  55.     border-width:1px;
  56.     border-color:#516589;
  57.     background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
  58.                                        stop:0 #9979A, stop:1 #2D567F);
  59.     font:#FFFFFF;

  60. }
  61.   QMenu {
  62.      background-color: #030406;                /*菜单下拉列表的外边框颜色*/
  63.      border-width:0px;
  64.      margin: 2px;                        /*下拉列表的外边框的宽度*/
  65. }

  66. QMenu::item {
  67.      background-color: #1D2838;                 /*如果不加,菜单下拉列表背景颜色默认为黑色*/
  68.      padding: 2px 25px 2px 20px;                /*对应每个菜单下拉选项的文字与上一选项的距离,与左边的距离,与下一选项的距离,与右边的距离*/
  69.      border-color:transparent;
  70.      color:#858E94;
  71. }
  72. QMenu::item:!enabled {                /*当某项菜单不能用时*/
  73.      background-color:  #1D2838;
  74.      padding: 2px 25px 2px 20px;
  75.      border-color:transparent;
  76.      color:#76746C;                        /*字体颜色*/
  77. }

  78. QMenu::item:selected {                        /*当菜单项处于选中状态时选中时*/
  79.      border-width:1px;
  80.      border-color: #516589;
  81.      background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,        /*stop有两个,是设置渐变色的关键,由这两个stop的提供的颜色值混合设置渐变色*/
  82.                                  stop: 0 #1E293A,
  83.                                  stop: 1.0 #2C547E);
  84.      color:#E6FFFF;
  85. }

  86. QMenu::icon:checked { /* appearance of a 'checked' icon */
  87.      background: gray;
  88.      border: 1px inset gray;
  89.      position: absolute;
  90.      top: 1px;
  91.      right: 1px;
  92.      bottom: 1px;
  93.      left: 1px;
  94. }

  95. QMenu::separator {                                /*分离器,作用暂时未知*/
  96.      height: 1px;
  97.      background: #1D99A9;
  98.      /*margin-left: 10px;*/
  99.      /*margin-right: 5px;*/
  100. }

  101. QMenu::indicator {                                /*指示符,作用暂时未知*/
  102.      width: 13px;
  103.      height: 13px;
  104. }



  105. /*---------------------------------------------------------------------以下为TabBar的设置-------------------------------------------------------*/
  106. QTabBar::tab {
  107.      background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
  108.                                  stop: 0 #15A8FF,  stop: 1.0 #113845);        /*当鼠标经过tabbar的上方时所显示的颜色*/
  109. }
  110. QTabBar::tab:selected{
  111.      background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
  112.                                  stop: 0 #113845,  stop: 1.0 #15A8FF);                /*TabBar的某一个子窗体被选中时,它的最上面的小标题的背景颜色*/
  113. }
  114. QTabBar::tab:hover {
  115.      background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
  116.                                  stop: 0 #15A8FF,  stop: 1.0 #113845);        /*当鼠标经过tabbar的上方时所显示的颜色*/
  117. }


  118. /*----------------------------------------------------------------------------在MainWindow右下角-------------------------------------------------------------------------------------------------------*/
  119. QSizeGrip {

  120.      image: url(qss/sizegrip.png);
  121.      width: 16px;
  122.      height: 16px;
  123. }
复制代码
回复

使用道具 举报

累计签到:882 天
连续签到:3 天
2015-5-4 13:12:26 显示全部楼层

  1. /*----------------------------------------------------------------------------在TreeWidget的标题颜色设置-------------------------------------------------------------------------------------------------------*/
  2. QHeaderView::section {

  3.      background:transparent;                /*控件背景透明*/
  4.     border-color: #11505C;                        /*改变boder的颜色,以便实现动态感觉*/
  5.     border-style: outset;
  6.     border-width: 1px;                                /*boder的长度,有突出效果*/
  7.     border-radius: 1px;
  8.     padding: 5px;                                /*标题宽度*/
  9. }



  10. /*--------------------------------------------------------------以下为QLineEdit的设置----------------------------------------------------------*/


  11. QLineEdit,QTextEdit {
  12.     border: 1px solid #32435E;
  13.     border-radius: 5px;                                /*控件边框的弧度,数值越大,则弯曲得越厉害*/
  14.     /* padding: 0 8px; */
  15.     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,        /*背景*/
  16.                                  stop: 0 #113845,
  17.                                  stop: 1.0 #15A8FF);
  18.     selection-background-color: #0A246A;

  19. }
  20. QLineEdit::hover{
  21.   border-color:#5D8B9E;                                /*外边框的颜色*/
  22. }

  23. QLineEdit[echoMode="3"] {
  24.      lineedit-password-character: 9679;
  25. }

  26. #QLineEdit:read-only {
  27.      background: #543F7C;
  28. }



  29. /*-----------------------------------------------------------以下设置特定QToolButton的属性-----------------------------------------------------*/


  30. QToolButton[objectName="minimizeToolBtn"] {                                                /*为特定控件名的按钮单独设置属性*/
  31.     background: transparent;
  32.     border:none;
  33.     image:url(qss/minimize.png)
  34. }
  35. QToolButton[objectName="minimizeToolBtn"]:hover,QToolButton[objectName="minimizeToolBtn"]:pressed {/*为特定控件名的按钮单独设置属性*/
  36.     image:url(qss/minimize_hover.png)
  37. }




  38. /*---------------------------------------------------------以下设置pushbutton的样式-------------------------------------------------*/
  39. QPushButton{
  40.     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,        /*三个坐标对应的是上。中。下的background的颜色*/
  41.                                  stop: 0 #122C39, stop: 0.5 #758385,
  42.                                  stop: 1.0 #15A8FF);
  43.     border-color: #11505C;                        /*改变boder的颜色,以便实现动态感觉*/
  44.     border-style: outset;
  45.     border-width: 5px;                                /*boder的长度,有突出效果*/
  46.     border-radius: 1px;
  47.     padding: 1px;
  48. }

  49. QPushButton::hover{
  50.     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
  51.                                  stop: 0 #5B5F5F, stop: 0.5 #0C2436,
  52.                                  stop: 1.0 #27405A);
  53.     border-color: #11223F;                        /*boder的颜色,boder跟background做对比设置可以有较明显效果*/
  54.    
  55. }

  56. QPushButton::pressed{
  57.     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
  58.                                  stop: 0 #969B9C, stop: 0.5 #16354B,
  59.                                  stop: 1.0 #244F76);
  60.     border-color: #11505C;
  61. }
  62. QPushButton::disabled{
  63.     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
  64.                                  stop: 0 #282B2C, stop: 0.5 #09121A,
  65.                                  stop: 1.0 #111D29);
  66.     border-color: #0A1320;
  67.     color:#6A6864;

  68. }



  69. QDialog QPushButton,QDialog QToolButton{
  70.   min-width:30px;
  71.   min-height:23px;
  72. }

  73. /*----------------------------------------------------------------以下设置QToolButton------------------------------------------------------*/
  74. QToolButton{
  75.   min-width:30px;
  76.   min-height:23px;
  77. }

  78. /*----------------------------------------------------------------以下设置QComboBox------------------------------------------------------*/


  79. QComboBox {
  80.      min-width: 6em;
  81.     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,        /*三个坐标对应的是上。中。下的background的颜色*/
  82.                                  stop: 0 #122C39, stop: 0.5 #758385,
  83.                                  stop: 1.0 #15A8FF);
  84.     border-color: #11505C;                        /*改变boder的颜色,以便实现动态感觉*/
  85.     border-style: outset;
  86.     border-width: 5px;                                /*boder的长度,有突出效果*/
  87.     border-radius: 1px;
  88.     padding: 1px;
  89. }
  90. QComboBox::hover{
  91.   border-color:#5D8B9E;
  92. }


  93. QComboBox:editable {
  94.      background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
  95.                                  stop: 0 #080B10,
  96.                                  stop: 1.0 #212C3F);
  97. }

  98. QComboBox:!editable, QComboBox::drop-down:editable {
  99.       background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
  100.                                  stop: 0 #080B10,
  101.                                  stop: 1.0 #212C3F);
  102. }

  103. /* QComboBox gets the "on" state when the popup is open */
  104. QComboBox:!editable:on, QComboBox::drop-down:editable:on {
  105.      background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
  106.                                  stop: 0 #080B10,
  107.                                  stop: 1.0 #212C3F);;
  108. }

  109. QComboBox:on { /* shift the text when the popup opens */
  110.      padding-top: 3px;
  111.      padding-left: 4px;
  112. }
  113. QComboBox::drop-down {
  114.      subcontrol-origin: padding;
  115.      subcontrol-position: top right;
  116.      width: 15px;

  117.      border-left-width: 1px;
  118.      border-left-color: 32435E;
  119.      border-left-style: solid; /* just a single line */
  120.      border-top-right-radius: 3px; /* same radius as the QComboBox */
  121.      border-bottom-right-radius: 3px;
  122. }

  123. QComboBox::down-arrow {
  124.      image: url(qss/downarrow.png);
  125. }

  126. QComboBox::down-arrow:on { /* shift the arrow when popup is open */
  127.      top: 1px;
  128.      left: 1px;
  129. }

  130. QComboBox QAbstractItemView {
  131.      border: 2px solid #32435E;
  132.      selection-background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
  133.                                  stop: 0 #506B79,
  134.                                  stop: 1.0 #0D95A6);
  135.     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
  136.                                  stop: 0 #1B2534, stop: 0.4 #010101,
  137.                                  stop: 0.5 #000101, stop: 1.0 #1F2B3C);
  138. }

  139. /*--------------------------------------------------设置QStatusBar---------------------------------------------------------------------------*/
  140. QStatusBar {
  141.     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,        /*背景*/
  142.                                  stop: 0 #113845,
  143.                                  stop: 1.0 #15A8FF);
  144. }

  145. QStatusBar::item {
  146.      border: 1px solid #3E58A5;
  147.      border-radius: 3px;
  148. }

  149. #QStatusBar QLabel {
  150.      border: 1px solid #6AF0FF;
  151.      /*background: white; */
  152. }
复制代码
回复

使用道具 举报

累计签到:882 天
连续签到:3 天
2015-5-4 13:13:04 显示全部楼层
  1. /*-----------------------------------------------------------以下设置checkbox--------------------------------------------------------------*/
  2. QCheckBox {
  3.      spacing: 5px;
  4.      background:transparent;                /*控件背景透明*/
  5. }

  6. QCheckBox::indicator {
  7.      width: 13px;
  8.      height: 13px;
  9. }

  10. QCheckBox::indicator:unchecked {
  11.      image: url(:/qss/checkbox_unchecked.png);
  12. }

  13. QCheckBox::indicator:unchecked:hover {
  14.     image: url(:/qss/checkbox_unchecked_hover.png);
  15. }

  16. QCheckBox::indicator:unchecked:pressed {
  17.      image: url(:/qss/checkbox_unchecked_pressed.png);
  18. }

  19. QCheckBox::indicator:checked {
  20.      image: url(:/qss/checkbox_checked.png);
  21. }

  22. QCheckBox::indicator:checked:hover {
  23.      image: url(:/qss/checkbox_checked_hover.png);
  24. }

  25. QCheckBox::indicator:checked:pressed {
  26.      image: url(:/qss/checkbox_checked_pressed.png);
  27. }

  28. QCheckBox::indicator:indeterminate:hover {
  29.      image: url(:/qss/checkbox_indeterminate_hover.png);
  30. }

  31. QCheckBox::indicator:indeterminate:pressed {
  32.      image: url(:/qss/checkbox_indeterminate_pressed.png);
  33. }


  34. /*-----------------------------------------------------------以下设置QRadioButton-----------------------------------------------------------*/

  35. QRadioButton {
  36.      width: 13px;
  37.      height: 13px;
  38.      background:transparent;
  39. }

  40. QRadioButton::indicator {
  41.      width: 13px;
  42.      height: 13px;
  43.      background:transparent;
  44. }

  45. QRadioButton::indicator::unchecked {
  46.      image: url(qss/radiobutton_unchecked.png);
  47. }

  48. QRadioButton::indicator:unchecked:hover {
  49.      image: url(qss/radiobutton_unchecked_hover.png);
  50. }

  51. QRadioButton::indicator:unchecked:pressed {
  52.      image: url(qss/radiobutton_unchecked_pressed.png);
  53. }

  54. QRadioButton::indicator::checked {
  55.      image: url(qss/radiobutton_checked.png);
  56. }

  57. QRadioButton::indicator:checked:hover {
  58.      image: url(qss/radiobutton_checked_hover.png);
  59. }

  60. QRadioButton::indicator:checked:pressed {
  61.      image: url(qss/radiobutton_checked_pressed.png);
  62. }


  63. /*--------------------------------------------------------以下设置QScrollBar------------------------------------------------------*/

  64. QScrollBar:vertical {                                                /*垂直的QScrollBar*/
  65.       border: 1px solid #32435E;
  66.       border-width: 0px 0px 0px 1px;
  67.       background: #21252F;
  68.       width: 12px;
  69.       margin: 12px 0 12px 0;
  70.   }
  71.   QScrollBar::handle:vertical {                                        /*handle处理*/
  72.       background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
  73.                                        stop:0 #60788C, stop:1 #1084BD);
  74.       min-height: 20px;
  75.   }
  76.   QScrollBar::add-line:vertical {
  77.       border: 1px solid #32435E;
  78.       border-width:0px 0px 0px 1px;
  79.       background:#21252F;
  80.       height: 12px;
  81.       subcontrol-position: bottom;
  82.       subcontrol-origin: margin;
  83.   }

  84.   QScrollBar::sub-line:vertical {
  85.       border: 1px solid #32435E;
  86.       border-width:0px 0px 0px 1px;
  87.       background: #21252F;
  88.       height: 12px;
  89.       subcontrol-position: top;
  90.       subcontrol-origin: margin;
  91.   }
  92.   QScrollBar::up-arrow:vertical {
  93.       border: 1px solid transparent;
  94.       background: #21252F;
  95.       image: url(qss/up_arrow.png);
  96.       width: 7px;
  97.       height: 7px;
  98.   }
  99.   QScrollBar::up-arrow:vertical:hover,QScrollBar::up-arrow:vertical:pressed {
  100.       image: url(qss/up_arrow_hover.png);
  101.   }

  102.   QScrollBar::down-arrow:vertical{
  103.       border: 1px solid transparent;
  104.       background: #21252F;
  105.       image:url(qss/down_arrow.png);
  106.       width: 7px;
  107.       height: 7px;
  108.   }
  109. QScrollBar::down-arrow:vertical:hover,QScrollBar::down-arrow:vertical:pressed{
  110.     image: url(qss/down_arrow_hover.png);
  111. }
  112. QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
  113.       background: none;
  114. }


  115. QScrollBar:horizontal {                                /*水平的QScrollBar*/
  116.       border: 1px solid #32435E;
  117.       border-width: 1px 0px 0px 0px;
  118.       background: #21252F;
  119.       height: 12px;
  120.       margin: 0 12px 0 12px;
  121.   }
  122.   QScrollBar::handle:horizontal {
  123.       background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
  124.                                        stop:0 #60788C, stop:1 #1084BD);
  125.       min-width: 20px;
  126.   }
  127.   QScrollBar::add-line:horizontal {
  128.       border: 1px solid #32435E;
  129.       border-width:1px 0px 0px 0px;
  130.       background:#21252F;
  131.       width: 12px;
  132.       subcontrol-position: right;
  133.       subcontrol-origin: margin;
  134.   }

  135.   QScrollBar::sub-line:horizontal {
  136.       border: 1px solid #32435E;


  137.       border-width:1px 0px 0px 0px;
  138.       background: #21252F;
  139.       width: 12px;
  140.       subcontrol-position: left;
  141.       subcontrol-origin: margin;
  142.   }
  143.   QScrollBar::left-arrow:horizontal {
  144.       border: 1px solid transparent;
  145.       background: #21252F;
  146.       image: url(qss/left_arrow.png);
  147.       width: 7px;
  148.       height: 7px;
  149.   }
  150.   QScrollBar::left-arrow:horizontal:hover,QScrollBar::left-arrow:horizontal:pressed {
  151.       image: url(qss/left_arrow_hover.png);
  152.   }

  153.   QScrollBar::right-arrow:horizontal{
  154.       border: 1px solid transparent;
  155.       background: #21252F;
  156.       image:url(qss/right_arrow.png);
  157.       width: 7px;
  158.       height: 7px;
  159.   }
  160. QScrollBar::right-arrow:horizontal:hover,QScrollBar::right-arrow:horizontal:pressed{
  161.     image: url(qss/right_arrow_hover.png);
  162. }
  163. QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal {
  164.       background: none;
  165. }
复制代码
回复

使用道具 举报

累计签到:882 天
连续签到:3 天
2015-5-4 13:15:08 显示全部楼层
资源来自于网络,但我也忘了在哪下的了。。。
回复

使用道具 举报

累计签到:256 天
连续签到:1 天
2015-5-4 13:28:00 显示全部楼层
一叶知秋 发表于 2015-5-4 13:15
资源来自于网络,但我也忘了在哪下的了。。。

额 谢谢了 这么多........
回复

使用道具 举报

累计签到:256 天
连续签到:1 天
2015-5-4 14:01:35 显示全部楼层
我贴的第一张图片可以拉成这样 我问问这个是怎么实现的 我一直做不出来?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

累计签到:256 天
连续签到:1 天
2015-5-4 14:02:10 显示全部楼层
一叶知秋 发表于 2015-5-4 13:15
资源来自于网络,但我也忘了在哪下的了。。。

再帮我看一下28楼的那个改变是怎么做的、、、
回复

使用道具 举报

累计签到:882 天
连续签到:3 天
2015-5-4 16:37:22 显示全部楼层
建议你看一下亚飞老师关于布局管理的那一章,这么给你解释太累了。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了