第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PyQt:通過樣式表的屬性僅用于繪畫?

PyQt:通過樣式表的屬性僅用于繪畫?

拉丁的傳說 2022-10-06 19:35:50
我想在 PyQt5 中使用style sheet來布局自定義小部件。通常這是可行的:小部件與修改后的屬性一起顯示。然而,小部件的屬性(例如style-sheet font-familyvs. QLabel.label())似乎保持默認值(s. 下面的最小示例)。樣式表是否僅用于繪制小部件而不更改小部件本身?有沒有辦法獲得“新”屬性?否則,例如FontMetrics與 a 結合使用style sheet是不可能的?import sysfrom PyQt5.QtWidgets import QApplication, QLabelfrom PyQt5.QtGui import QFontInfostylesheet = '''QLabel{    font-family: Wingdings;}'''app = QApplication(sys.argv)label = QLabel('Hello World!')label.setStyleSheet(stylesheet)print(QFontInfo(label.font()).family())  # prints out: MS Shell Dlg 2; expected: Wingdingslabel.show()app.exec()
查看完整描述

1 回答

?
達令說

TA貢獻1821條經驗 獲得超6個贊

您的懷疑確實是正確的:使用樣式表時,許多小部件屬性都被忽略了,無論是對于它們的 getter 還是 setter。

沒有直接的方法可以知道這些值,因為它們都是由 Qt 的解析器在內部管理的。

最重要的是,palette()and font()fontMetrics()顯然)不受影響,因此您無法知道樣式表使用的字體屬性或調色板顏色是什么,如果您嘗試設置字體或設置新調色板,您將不會結果(所有這一切都假設您實際上在樣式表中設置了一些顏色或字體,顯然)。

這也適用于其他小部件特定屬性(例如,QFrame 邊框樣式),它們甚至可能在不同樣式/系統(tǒng)上產生略微不同的結果。

這也是您應該使用樣式表或 QPalette 的原因,因為混合它們可能會導致意外行為。

來自QWidget.palette()文檔:

警告:不要將此功能與 Qt 樣式表一起使用。

來自QWidget.font()文檔:

注意:如果 Qt 樣式表與 setFont() 在同一個小部件上使用,如果設置沖突,樣式表將優(yōu)先。


查看完整回答
反對 回復 2022-10-06
  • 1 回答
  • 0 關注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號