2011-03-10 72 views
1

我正在使用QLabel小部件在狀態欄中向用戶顯示錯誤消息。這與以下代碼正常工作。pyqt - 如何從狀態欄中的小部件中刪除boder?

self.statusbar = self.statusBar() 

label = QtGui.QLabel("this is a test error message") 
stylesheet = """ 
QLabel { 
font-weight: bold; 
color: #FF0000; 
} 
""" 
label.setStyleSheet(stylesheet) 
self.statusbar.addWidget(label) 

唯一的問題是,小工具有他們周圍的邊框,我無法擺脫。這在功能上不是問題,因爲該消息仍然可見,但看起來相當難看,我想擺脫它。我無法確定它來自哪裏。無論是我需要在狀態欄還是小部件上設置的東西。我曾嘗試修改狀態欄和標籤的樣式表以添加「border:0px」無濟於事。我試圖將標籤框設置爲label.setFrameShape(QtGui.QFrame.NoFrame),但似乎也不是。

任何人有任何想法,我可以擺脫它嗎?

回答

2

你樣式表做到這一點。您可能有這樣一行 應用程序應用程序(argc,argv);

下面,添加一個像這樣的: app.setStyleSheet(「QStatusBar :: item {border:0px solid black};」);

那些討厭的盒子將會消失。

+0

多數民衆贊成它。謝謝:) – 2011-03-26 03:01:32

+0

如果你不使用樣式表,你會怎麼做?我正在加載預定義的調色板。像你一樣設置樣式表也會擦除所有其他調色板設置並將所有東西混淆。 – BigBrownBear00 2014-07-11 05:21:20

0

嘗試使用self.statusbar.showMessage('this is a test error message'),因爲QStatusBar不是爲顯示標籤而設計的。如果你需要比這更多的frexibility,你可以考慮繼承QStatusBar並將其paintEvent函數改爲特殊標籤。無論如何,這些方法中的任何一種都比爲每個標籤設置樣式表要容易得多,但仍然如往常一樣,YMMV。

更多信息請查看the manual page for QStatusBar

+1

感謝您的回覆。我一直在使用showMessage進行各種類型的反饋,包括錯誤消息。錯誤只是不突出。所以看着這些文檔,我加入了一個小部件,這樣我就可以控制它的感覺。文檔聲明showMessage用於臨時按摩,addWidget用於顯示普通和永久消息,因此這似乎是最佳方式。我喜歡QStatusBar的子類化的想法。這可能會給我我需要的靈活性。我會看看它。 – 2011-03-13 11:45:02