Я наконец решил сделать переход с WxPython на QT! Я использую Qt Designer5.9, но у меня проблемы с размещением нового слота. Моя цель — нажать кнопку в графическом интерфейсе и запустить функцию, написанную мной в другой программе на Python.
В Qt Designer я «иду в слот», выбираю clicked (), и это появляется.
mainwindow.cpp
void MainWindow::on_pushButton_2_clicked()
{
}
Что именно то, что я хочу, но не на том языке! Мой питон достаточно плох, не говоря уже о чем-то еще. Итак, запустив этот урок Я знаю, что если я пройду ui->textEdit->append(("Hello World"));
Я могу сделать что-то нестандартное, но после конвертации с использованием pyuic для конвертации в .py неясно, как это реализовано. Моя функция легко импортируется, как показано ниже, мне просто нужно знать, где ее разместить.
import myfunction
myfunction()
Может кто-нибудь дать мне пример того, что должно быть написано на C ++ в Qt Designer, чтобы я мог вызывать свою функцию python после преобразования .ui ??
Я не знаю, почему вам нужен C ++, вы можете делать то, что вы хотите в Python. Создайте свой пользовательский интерфейс в QT Designer. Мне нравится избегать использования Pyuic, я предпочитаю использовать следующий способ, может быть, вы найдете его лучше. Скажем, ваш UI-файл называется some.ui, и вы назвали свою кнопку в QT Designer pushButton_2, тогда код на python будет выглядеть так:
from PyQt4 import QtCore, QtGui, uic
Ui_somewindow, _ = uic.loadUiType("something.ui") #the path to your UI
class SomeWindow(QtGui.QMainWindow, Ui_somewindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
Ui_somewindow.__init__(self)
self.setupUi(self)
self.pushButton_2.clicked.connect(self.yourFunction)
def yourFunction(self):
#the function you imported or anything you want to happen when the button is clicked.
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
window = SomeWindow()
window.show()
sys.exit(app.exec_())
Надеюсь это поможет!
Других решений пока нет …