Python Qt框架、PyQt5和AttributeError:&x27;MyApp';对象没有属性';myAttribute';
上周我开始学习Python,并开发了一些命令行应用程序。现在我想用GUI开发应用程序。我在互联网上搜索,找到了一个适合我需要的项目:Qt-project()和PyQt()。我在Mac OS X 10.10和python 2.7.6上安装了Qt5.3.2开源、SIP4.16.4、PyQt5 5.3.2。在安装Qt和PyQt时遇到一些麻烦之后,我终于设法使它们工作了。如果我从PyQt示例文件夹中打开示例项目,gui将毫无问题地出现。因此,我使用QtCreator创建了GUI,然后使用pyuic5生成python代码。这是PUIC5创建的(文件名“myapp\u auto.py”): 在那之后,我添加了一个新的python文件,我把代码放在那里;这是我写的(文件名“myapp.py”): 然后,我运行myapp.py,并验证所有GUI元素似乎都在它们应该位于的位置。嗯……现在我的问题来了:我试图用代码访问MainWindow中的“time”元素,修改init def,因此:Python Qt框架、PyQt5和AttributeError:&x27;MyApp';对象没有属性';myAttribute';,python,qt,user-interface,pyqt5,Python,Qt,User Interface,Pyqt5,上周我开始学习Python,并开发了一些命令行应用程序。现在我想用GUI开发应用程序。我在互联网上搜索,找到了一个适合我需要的项目:Qt-project()和PyQt()。我在Mac OS X 10.10和python 2.7.6上安装了Qt5.3.2开源、SIP4.16.4、PyQt5 5.3.2。在安装Qt和PyQt时遇到一些麻烦之后,我终于设法使它们工作了。如果我从PyQt示例文件夹中打开示例项目,gui将毫无问题地出现。因此,我使用QtCreator创建了GUI,然后使用pyuic5生成
def __init__(self, parent=None, name=None):
Ui_MainWindow.__init__(self)
# Set the date to now
now = QDateTime()
now.setTime_t(int(time.time()))
self.time.setDateTime(now)
但编译器始终显示此错误:
AttributeError:“MyApp”对象没有属性“time”
即使我尝试访问任何其他元素(“ok”、“text”),也会发生这种情况。
这肯定是个愚蠢的错误,但我就是想不出哪里出了错。
谢谢大家!
祝你过得愉快
安德里亚你已经不远了
MyApp
类需要继承QMainWindow
,您不需要使用time
模块。试着这样做:
class MyApp(QMainWindow, Ui_MainWindow):
parse_triggered = pyqtSignal()
def __init__(self, parent=None, name=None):
super(MyApp, self).__init__(parent)
self.setupUi(self)
# Set the date to now
self.time.setDateTime(QDateTime.currentDateTime())
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MyApp()
window.show()
sys.exit(app.exec_())
太好了,太完美了!对于初学者来说,从专家那里得到建议真是太棒了!非常感谢你,埃克胡洛,你救了我一个晚上!
def __init__(self, parent=None, name=None):
Ui_MainWindow.__init__(self)
# Set the date to now
now = QDateTime()
now.setTime_t(int(time.time()))
self.time.setDateTime(now)
class MyApp(QMainWindow, Ui_MainWindow):
parse_triggered = pyqtSignal()
def __init__(self, parent=None, name=None):
super(MyApp, self).__init__(parent)
self.setupUi(self)
# Set the date to now
self.time.setDateTime(QDateTime.currentDateTime())
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MyApp()
window.show()
sys.exit(app.exec_())