亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

pyqt5 border only apply to parent widget問題

pyqt5 border only apply to parent widget問題

臨摹微笑 2023-02-22 17:11:54
每個人。我在 pyqt5 中遇到了奇怪的問題。我嘗試更改邊框但失敗了,我在應用邊框樣式時總是很頭疼。我的代碼來了。請幫助我from PyQt5.QtWidgets import QWidget,QApplication,QTextEditfrom PyQt5.QtCore import Qtfrom PyQt5 import QtWidgetsimport sysclass SomeWidget(QWidget):    def __init__(self, *args, **kwargs):        super().__init__(*args, **kwargs)        self.setStyleSheet('border:10px solid green')        passclass mainWidget(QWidget):    def __init__(self,**kwargs):        super().__init__(**kwargs)        widget = SomeWidget(self)        widget.setWindowFlags(Qt.FramelessWindowHint|Qt.Window)        widget.resize(self.width()//2,self.height()//2)                widget.show()        # self.setStyleSheet(styles)        passdef test1():    return 0,1if __name__ == "__main__":    app = QApplication(sys.argv)    mw = mainWidget()    mw.show()    sys.exit(app.exec_())        pass
查看完整描述

2 回答

?
哈士奇WWW

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

這里的問題是 QWidget 類不支持 border 屬性(請直接查看此答案Qt 樣式表文檔)。

也就是說,將 QWidget 更改為 QFrame 可以達到目的:

import sys


from PyQt5.QtCore import Qt

from PyQt5.QtWidgets import QWidget, QApplication, QFrame



class SomeWidget(QFrame):

    def __init__(self, *args, **kwargs):

        super().__init__(*args, **kwargs)

        self.setStyleSheet('border:10px solid green')



class mainWidget(QWidget):

    def __init__(self, **kwargs):

        super().__init__(**kwargs)

        widget = SomeWidget(self)

        widget.setWindowFlags(Qt.FramelessWindowHint | Qt.Window)

        widget.resize(self.width() // 2, self.height() // 2)


        widget.show()



if __name__ == "__main__":

    app = QApplication(sys.argv)

    mw = mainWidget()

    mw.show()


    sys.exit(app.exec_())


查看完整回答
反對 回復 2023-02-22
?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

嘗試一下:


import sys

from PyQt5.QtWidgets import QWidget, QApplication, QTextEdit

from PyQt5.QtCore import Qt

from PyQt5.Qt import *



class SomeWidget(QWidget):

    def __init__(self, *args, **kwargs):

        super().__init__(*args, **kwargs)

        

#        self.setStyleSheet('background: #0ff; border: 10px solid green')

        

        self.widget = QWidget(self)

        self.widget.setObjectName('Custom_Widget')

        self.widget.setStyleSheet('''

            QWidget#Custom_Widget {

                background: rgba( 255, 155, 155, 170);

                border-radius: 20px;

                border: 10px solid green;                   

            }

        ''')


        self.v = QVBoxLayout(self)

        self.v.setContentsMargins(0, 0, 0, 0)

        self.v.addWidget(self.widget)



class MainWidget(QWidget):

    def __init__(self,**kwargs):

        super().__init__(**kwargs)

        widget = SomeWidget(self)

        widget.setWindowFlags(Qt.FramelessWindowHint | Qt.Window)

        widget.setAttribute(Qt.WA_TranslucentBackground)                # +++

        widget.resize(self.width()//2, self.height()//2)

        

        widget.move(100, 100)                                           # +++

        widget.show()

        

        self.setStyleSheet('background:#00f;')



def test1():     # ???

    return 0,1


if __name__ == "__main__":

    app = QApplication(sys.argv)

    mw = MainWidget()

    mw.show()

    sys.exit(app.exec_())

http://img1.sycdn.imooc.com//63f5dc8f0001cfd106570480.jpg

查看完整回答
反對 回復 2023-02-22
  • 2 回答
  • 0 關注
  • 195 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號