PyQt格式下拉列表

问题描述 投票:1回答:1

我正在尝试制作具有多个元素的pyqt gui,但不确定如何格式化它。基本上,我想要页面顶部的三个下拉菜单按钮,并且当选择一个选项时,它将显示带有qtableview小部件的sqlite3数据库表。关于如何格式化下拉菜单的任何帮助? (或一般而言,是否有任何用于格式化pyqt的好的资源?)谢谢!

编辑:这是我尝试的内容:

    self.com_btn = QComboBox('Com')
    self.sec_btn = QComboBox('Sec')
    self.sto_btn = QComboBox('Sto')

    self.hbox = QHBoxLayout()
    self.hbox.addStretch(1)
    self.hbox.addWidget(self.com_btn)
    self.hbox.addWidget(self.sec_btn)
    self.hbox.addWidget(self.sto_btn)
    self.setLayout(self.hbox)

编辑:图像

enter image description here

python sqlite pyqt pyqt5
1个回答
0
投票

对于一个简单的单行代码,您可以这样设置样式:

self.com_btn.setStyleSheet('QComboBox {border: 1px solid gray;}')

或者您可以制作一个样式表文件,并通过主要功能将其添加到您的应用程序中:

if __name__ == '__main__':

    app = QApplication(sys.argv)
    css = open('path/to/my.css', 'r').read()
    app.setStyleSheet(css)
    mainWindow = Window()
    mainWindow.show()
    sys.exit(app.exec_())

您可以通过多种方式设置QComboBox的样式:

QComboBox {
    border: 1px solid gray;
    border-radius: 3px;
    padding: 1px 18px 1px 3px;
    min-width: 6em;
}

QComboBox:editable {
    background: white;
}

QComboBox:!editable, QComboBox::drop-down:editable {
    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
                                stop: 0 #E1E1E1, stop: 0.4 #DDDDDD,
                                stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3);
}

有关更多信息,您可以查看官方文档:https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox

© www.soinside.com 2019 - 2024. All rights reserved.