gpt4 book ai didi

python - 找不到将Qt-Designer4与Python绑定(bind)的方法

转载 作者:太空宇宙 更新时间:2023-11-03 14:33:59 25 4
gpt4 key购买 nike

我厌倦了在Python类(Python 2.7和PyQt4)中寻找处理加载file.ui(GUI QTDesigner)的小部件的方法

代码

form_class = uic.loadUiType("MyPythonProgram.ui")[0]

class MyWindowClass(QtGui.QMainWindow, form_class):

def __init__(self, parent = None):
QtGui.QMainWindow.__init__(self, parent)
self.setupUi(self)
self.btn_buscar.clicked.connect(self.buscar)

def addingResultsToQListView(self):
for item in SomeList:
self.listView.addItem(item) ###It's not correct, but cannot find the right one

def onListItemClicked():
getItem = listView.currentItem().text() ###It's not correct, but cannot find the right one

def buscar(self):
getEditText = self.textEdit.toPlainText()
### Don't know how to do this function. I want to get the edittext to search on some website and retrieve the results into a list. then the list will be added to QlistView (just found C++ methods, not for python)
#Finally
getEditText = '' ###After click on 'btn_buscar', want to clear this field

app = QtGui.QApplication(sys.argv)
MyWindow = MyWindowClass(None)
MyWindow.show()
app.exec_()

它可能有助于获取一些 DOC,或者一些有关使 python 应用程序混合(如果可能的话是 Android)的帮助,将 .ui 和 .py 层分开,正如我试图向您展示的那样。

这是我的 .ui 以获取更多信息:

UI QT DESIGNER4

问题'如何将 python 函数与 .ui 上的元素绑定(bind)?我尝试了太多的方法,但没有找到合适的方法。需要知道如何处理 QlistView 和 Qedittext...谢谢

最佳答案

这就是我的做法:在 UI 的构造(加载)和更改其内容之间分离类。

form_class = uic.loadUiType("MyPythonProgram.ui")[0]

class MyWindowClass(QtGui.QMainWindow, form_class):
def __init__(self, parent = None):
QtGui.QMainWindow.__init__(self, parent)
self.setupUi(self)

class myGui:
def __init__(self):
self.gui = MyWindowClass() # that's the trick!
# self.addindResultsToQListView() # doesn't work, because I don't have your list items
self.gui.btn_buscar.clicked.connect(self.buscar)
self.editText = None

def show(self):
self.gui.show()

def addingResultsToQListView(self):
for item in SomeList: # you need to specify this `list` before this works!
self.gui.listView.addItems(item)

def buscar(self):
self.editText = self.gui.textEdit.text()
self.gui.textEdit.setText("")

app = QtGui.QApplication(sys.argv)
MyWindow = MyGui()
MyWindow.show()
app.exec_()

技巧是引用 MyWindowClass,它是 gui 的构造函数,因此也是 GUI 本身,作为控制 GUI 内容的类中的对象 (myGui)。

您在顶层调用myGui,然后调用MyWindowClass作为对象self.gui。从那时起,每当您想要在 GUI 中处理某些内容时,您都可以将其命名为 self.gui. 并添加 QObject。

我还尝试了解您想为 pushBotton 做什么。 TextEdit 的内容(在 PyQt 中称为 lineEdit 顺便说一句)存储在变量 self.editText 中,该变量初始化为 None。然后,lineEdit 将从用户内容中清除。

关于python - 找不到将Qt-Designer4与Python绑定(bind)的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47094200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com