我正在编写我的第一个PyQt程序,但是按钮有问题。我阅读了其他一些问答,但无法解决。
基本上,我有一个带有菜单栏的主窗口。通过单击菜单项“ actionSelect”,将打开一个名为SelectFiles的新对话框。它包含一个名为“ ChooseDirButton”的按钮,该按钮应打开选择目录小部件,并用所选目录更改“ ShowPath” linedit文本。
我的代码如下所示:
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys
import TeraGui
class MainWindow(QMainWindow, TeraGui.Ui_MainWindow):
path = ""
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
self.actionSelect.triggered.connect(self.Select)
def Select(self):
dialog = QDialog()
dialog.ui = TeraGui.Ui_SelectFiles()
dialog.ui.setupUi(dialog)
dialog.setAttribute(Qt.WA_DeleteOnClose)
dialog.exec_()
def ChooseDirectory():
global path
path = str(QFileDialog.getExistingDirectory(self, "Select Directory"))
self.ShowPath.setText(path)
app = QApplication(sys.argv)
form = MainWindow()
form.show()
app.exec_()
单击按钮“ ChooseDirButton”时,我无法执行ChooseDirectory方法。我试图连接它们,但我不了解正确的语法。此外,ChooseDirectory方法也可能有问题。我使用Qt Designer创建了GUI,然后使用“ import TeraGui”命令将其导入。
看起来您需要为对话框创建一个子类,就像为主窗口创建一样。
没有您的ui模块,我实际上无法测试它,但是这样的事情应该可以工作:
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys
import TeraGui
class MainWindow(QMainWindow, TeraGui.Ui_MainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
self.actionSelect.triggered.connect(self.Select)
def Select(self):
dialog = Dialog(self)
dialog.exec_()
self.ShowPath.setText(dialog.path)
class Dialog(QDialog, TeraGui.Ui_SelectFiles):
def __init__(self, parent=None):
super(Dialog, self).__init__(parent)
self.setAttribute(Qt.WA_DeleteOnClose)
self.setupUi(self)
self.ChooseDirButton.clicked.connect(self.ChooseDirectory)
self.path = ''
def ChooseDirectory(self):
self.path = str(QFileDialog.getExistingDirectory(
self, "Select Directory"))
app = QApplication(sys.argv)
form = MainWindow()
form.show()
app.exec_()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句