Я немного новичок так что вид ;-)PyQt4 диалог имя файла
Я имел графический интерфейс, который я сделал с помощью PyQt4 и Python 2.6 с диалогом рабочего файла (т.е. вы нажали на кнопку и окно выскочил и позволил вам выбрать файл для загрузки/сохранения). Код GUI, как 2000 строк, так что я буду включать биты я думаю, имеют важное значение:
from PyQt4 import QtGui as qt
from PyQt4 import QtCore as qc
class NuclearMotion(qt.QWidget):
def __init__(self, parent=None):
super(NuclearMotion, self).__init__(parent)
file_button = qt.QPushButton("Use data from file")
mainLayout = qt.QGridLayout()
mainLayout.addWidget(file_button, 14, 8, 1, 2)
def choose_file():
file_name = qt.QFileDialog.getOpenFileName(self, "Open Data File", "", "CSV data files (*.csv)")
self.connect(file_button, qc.SIGNAL("clicked()"), choose_file)
self.setLayout(mainLayout)
if __name__ == '__main__':
import sys
app = qt.QApplication(sys.argv)
NuclearMotionWidget = NuclearMotion()
NuclearMotionWidget.show()
sys.exit(app.exec_())
Вышеуказанные работы абсолютно нормально. Я набрал весь код для этого вручную, используя различные учебники. Теперь я создал новый графический интерфейс, используя конструктор QT и pyuic4, чтобы преобразовать его в файл .py. Теперь я не могу заставить диалог файла работать. Приведенный ниже код приводит к ошибке Типа:
from PyQt4 import QtCore, QtGui
class Ui_mainLayout(object):
def setupUi(self, mainLayout):
mainLayout.setObjectName(_fromUtf8("mainLayout"))
mainLayout.resize(598, 335)
mainLayout.setTabPosition(QtGui.QTabWidget.North)
mainLayout.setTabShape(QtGui.QTabWidget.Rounded)
mainLayout.setElideMode(QtCore.Qt.ElideLeft)
self.basic_tab = QtGui.QWidget()
self.file_button = QtGui.QPushButton(self.basic_tab)
QtCore.QObject.connect(self.file_button, QtCore.SIGNAL("clicked()"), self.choose_file)
def choose_file(self):
file_name = QtGui.QFileDialog.getOpenFileName(self, "Open Data File", "", "CSV data files (*.csv)")
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
mainLayout = QtGui.QTabWidget()
ui = Ui_mainLayout()
ui.setupUi(mainLayout)
mainLayout.show()
sys.exit(app.exec_())
Этот код производит графический интерфейс просто отлично и все остальное работает нормально, в том числе сигналов. Любая идея, что я делаю неправильно !?
так что если я заменю (объект) на (qt.QWidget), он должен работать? или мне нужно добавить его как (object, qt.QWidget), я бы попробовал, но я далеко от своего компьютера! Спасибо за быстрый ответ btw – Ben
Я пробовал, меняя объект на QWidget, отлично работал! – Ben