我终于决定从WxPython过渡到QT!我正在使用Qt Designer5.9,但是我在放置新插槽时遇到了问题。我的目标是在GUI上按package main
import (
"fmt"
)
type funcDef func(string) string
func foo(s string) string {
return fmt.Sprintf("from foo: %s", s)
}
func test(someFunc funcDef, s string) string {
return someFunc(s)
}
func main() {
output := test(foo, "some string")
fmt.Println(output)
}
并运行我在另一个python程序中编写的函数。
在Qt Designer中,我“type funcDef func(int, int) int
func AsyncFunc(func funcDef, a, b int) chan bool {
....
}
done := AsyncFunc(max, 5, 8)
”,选择button
然后会出现。
mainwindow.cpp
go to slot
这正是我想要的,但错误的语言!我的python已经够糟糕了,更别说其他了。因此,通过运行this tutorial,我知道如果我通过clicked()
我可以自定义,但使用 pyuic 进行转换后转换为 .py 它的实施方式并不明显。我的功能很容易导入,如下所示,我只需知道放在哪里。
void MainWindow::on_pushButton_2_clicked()
{
}
有没有人能给我一个Qt Designer中需要用C ++编写的例子,所以我可以在.ui转换后调用我的python函数?
答案 0 :(得分:1)
我不知道你为什么需要C ++,你可以在python中做你想做的事。在QT Designer中设计UI。我喜欢避免使用pyuic,我更喜欢使用以下方式,也许你会发现它更好。假设您的UI文件名为something.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_())
希望这有帮助!