簡體   English   中英

自定義按鈕PyQT4

[英]Custom button PyQT4

我無法顯示使用Python 2.7從PyQt4中的類創建的按鈕。 我的項目有80個按鈕,都需要拖放功能。 我創建了一個允許該操作的按鈕類,但不確定如何在Ui_Form顯示它。

我不認為可以使用布局管理器,因為我需要背景圖像,所以我假設我需要使用Ui_FormsetupUi函數的Form參數從Button類創建按鈕,但是我setupUi如何使用。

下面是一個只有兩個按鈕(和一個屏幕截圖)的腳本示例-一個是從我的類中調用的,另一個是QT Designer離開它時使用的。 按鈕btn_a1btn_a2的左側應該是可見的,但是它不是(由於不知道如何正確調用它)。 我刪除了標簽和按鈕功能的代碼,以幫助簡化操作。

import sys
from PyQt4 import QtCore, QtGui

class Ui_Form(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.setupUi(self)

    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(591, 591)
        self.Background = QtGui.QLabel(Form)
        self.Background.setGeometry(QtCore.QRect(0, 0, 631, 591))
        self.Background.setPixmap(QtGui.QPixmap("Python/LP_Proj/LP_Background.png"))
        self.Background.setObjectName("Background")

        self.btn_a1 = Button(Form)

        self.btn_a2 = QtGui.QPushButton(Form)
        self.btn_a2.setGeometry(QtCore.QRect(90, 40, 41, 41))
        self.btn_a2.setObjectName("btn_a2")

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        Form.setWindowTitle(QtGui.QApplication.translate("Form", "Launchpad Control", None, QtGui.QApplication.UnicodeUTF8))

class Button(QtGui.QPushButton):
    def __init__(self, Form):
        super(Button, self).__init__()
        self.setAcceptDrops(True)

        self.setGeometry(QtCore.QRect(30, 40, 41, 41))
        self.setObjectName("btn_a1")

if __name__=='__main__':
    app = QtGui.QApplication(sys.argv)
    ex = Ui_Form()
    ex.show()
    sys.exit(app.exec_())

按鈕示例

Button類中需要進行一些修改:

def __init__(self, text='', parent=None):
    super(Button, self).__init__('Text', parent=parent)
    ...

然后在您的setupUi的方法Ui_Form變化

self.btn_a1 = Button(Form)

self.btn_a1 = Button('Text', self)

用戶界面現在看起來像這樣:

按鈕界面

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM