使用教程点中的一段示例代码,我无法使用该代码打开文件对话框。
我正在使用 Ubuntu MATE 16.04,python 版本 3.7.4,PyQt5 版本 5.13.1 和以下代码
import sys
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class filedialogdemo(QWidget):
def __init__(self, parent=None):
super(filedialogdemo, self).__init__(parent)
layout = QVBoxLayout()
self.btn = QPushButton("QFileDialog static method demo")
self.btn.clicked.connect(self.getfile)
layout.addWidget(self.btn)
self.le = QLabel("Hello")
layout.addWidget(self.le)
self.contents = QTextEdit()
layout.addWidget(self.contents)
self.setLayout(layout)
self.setWindowTitle("File Dialog demo")
def getfile(self):
fname, _ = QFileDialog.getOpenFileName(self, 'Open file',
'', "Image files (*.jpg *.gif)")
print('The file name is...', fname)
self.le.setPixmap(QPixmap(fname))
def main():
app = QApplication(sys.argv)
ex = filedialogdemo()
ex.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
昨天我在 Windows 计算机上执行了代码,没有任何问题。由于我没有收到任何错误消息,只是收到None
作为回报..我无法真正调试它..至少我不知道如何..非常感谢任何帮助
To clarify what I get, here is a screen shot:
换句话说:我的 GUI 已创建,我可以与其交互。这意味着当我按下按钮时,连接的功能is调用(因为它打印出我的要求)。但没有打开文件对话框/资源管理器,因此程序的返回是None
。因此之后没有打印任何内容The file name is...
EDIT2:我重新安装了 PyQt5 软件包pip3
,测试这是否有任何区别。但遗憾的是,没有..
编辑3:正如 @ekhumuro 正确所说,如果您在简单的控制台(例如不是 Pycharm)中运行此代码,那么它应该运行良好。确实如此。