2014-07-09 26 views
7

Tôi đang sử dụng mã sau để kết nối QMenu đến QPushButton. Khi nút được nhấp, một trình đơn kéo xuống có nhiều mục của menu phụ sẽ được hiển thị.Cách thay đổi văn bản QPushButton và màu nền

button=QPushButton() 
button.setText("Press Me") 

font=QtGui.QFont() 
button.setFont(font) 
button.setSizePolicy(ToolButtonSizePolicy) 

button.setPopupMode(QtGui.QToolButton.InstantPopup) 
menu=QtGui.QMenu() 
button.setMenu(menu) 

menuItem1=menu.addAction('Menu Item1') 
menuItem2=menu.addAction('Menu Item2') 

Bây giờ tùy thuộc vào điều kiện tôi muốn tùy chỉnh QPushButton hiển thị bằng cách cho nó màu văn bản và màu nền. Dòng mã sau (được cho là thay đổi màu nền) không có hiệu lực trên QPushButton được kết nối với QMenu.

button.setStyleSheet('QPushButton {background-color: #A3C1DA}') 

Tôi muốn biết cách thay đổi màu nền của QPushButton cũng như màu của văn bản nút.

+0

Một số không phù hợp cies với mã của bạn: ToolButtonSizePolicy không được xác định và chỉ QToolButtons có setPopupMode, không QPushButtons. Đối với các stylesheet nó không quan trọng nếu nó là một QToolButton hoặc một QPushButton. Bản định kiểu của bạn đã hoạt động. – Trilarion

Trả lời

15

Ngoài một số mâu thuẫn với ví dụ mã của bạn thiết lập màu nền và màu chữ của một QPushButton công trình tốt với:

setStyleSheet('QPushButton {background-color: #A3C1DA; color: red;}') 

Ví dụ (sử dụng PySide):

from PySide import QtGui 

app = QtGui.QApplication([]) 

button = QtGui.QPushButton() 
button.setStyleSheet('QPushButton {background-color: #A3C1DA; color: red;}') 
button.setText('Press Me') 
menu = QtGui.QMenu() 
menuItem1 = menu.addAction('Menu Item1') 
menuItem2 = menu.addAction('Menu Item2') 

button.setMenu(menu) 
button.show() 

app.exec_() 

kết quả trong:

enter image description here

Các vấn đề liên quan