# -*- coding: utf-8 -*-
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class MainWindow(QWidget):
def __init__(self):
super(MainWindow, self).__init__()
self.setFixedWidth(200)
self.setFixedHeight(200)
stylesheet = \
".QWidget {\n" \
+ "border: 20px solid black;\n" \
+ "border-radius: 4px;\n" \
+ "background-color: rgb(255, 255, 255);\n" \
+ "}"
self.setStyleSheet(stylesheet)
if __name__ == '__main__':
app = QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(app.exec_())
スタイルシートを使用してカスタムウィジェットに境界線を追加したいのですが、スタイルシートが機能していないようです。
まず、実際のウィジェットをサンプルに追加します。
self.widget = QWidget(self)
layout = QVBoxLayout(self)
layout.addWidget(self.widget)
第二に、あなた自身に有利にして、三重引用符を使用してください:
self.widget.setStyleSheet("""
.QWidget {
border: 20px solid black;
border-radius: 10px;
background-color: rgb(255, 255, 255);
}
""")
注意:この例のドットセレクタは冗長です。これは、QWidget
のサブクラスではなく、QWidget
自体のインスタンスのみが選択されることを指定しています。 Qtドキュメントの StyleSheet Syntax ガイドを参照してください。
プロジェクトフォルダーに、基本的なCSSファイルmystylesheet.cssを追加します。 Atomのようなマルチ言語エディターは、この種のものに最適です。CSSファイルという名前を付けたままにすると、構文の強調表示は適切に機能します。
次にドットをドロップします。 qtはあなたの意味を知っています。
mystylesheet.css
QWidget {
border: 20px solid black;
border-radius: 10px;
background-color: rgb(255, 255, 255);
}
anyQelement.setStyleSheet(open('mystylesheet.css').read())