我对Qt比较陌生;我正在编写一个小程序,我不想为每个小部件创建自己的类。到目前为止,我还没有遇到很多困难,但我对信号和插槽有点困惑。我想制作一个信号,当用户在文本框(QLineEdit)中键入内容并按下enter时触发。我更希望插槽是一个接受用户输入的文本的功能。
到目前为止,我已经想出了这个:
textBox.connect(&textBox,SIGNAL(textBox.returnPressed()),/*What to put here?*/,processText(/*Here?*/))
如果这段代码非常错误,我道歉;正如我所说的,我是Qt的新手。
如果您能帮忙,我们将不胜感
我在使用信号和插槽来使用按钮触发一个调用“gc.speed_rpm”的事件(使用定义的插槽,或者我自己的方法/函数)并在文本浏览器小部件上显示它的输出时遇到了问题。
QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL(_fromUtf8("clicked()")), self.textBrowser_2, gc.speed_rpm)
我收到以下错误:
arguments did not match any overloaded call:
QObject.connect(QObject, SIGNAL(), QObje
我有一个后台线程,这个线程调用一些方法来更新UI (为了在文本区域中显示进度条和其他信息)。
如果我修改了一些UI小部件的值,就会抛出一个"Cannot send events to objects is a different thread“断言错误。
在论坛上,我读到我可以使用QMetaObject::invokeMethod方法,但只有当我向它传递Qt::DirectConnection标志时才能正常工作,该标志实际上引发了上面所示的相同错误。
如果我使用Qt::QueuedConnection或Qt::AutoConnection,则invokeMethod返回false。
我
我有个小问题。我希望在MainWindow中从AnotherWindow运行函数。我不能为它设置connect()。
Main class: MainWindow
Other form: AnotherWindow
Function in main class: setVariable(QString)
Function in other form: btnClicked()
我现在连接了按钮信号clicked()
// In AnotherWindow.cpp
connect(ui->btnOK, SIGNAL(clicked()), this, SLOT(btnOkClicked()
解决方案可能很简单,但是在从对话框中删除ButtonBox之后,我会得到以下错误:
QMetaObject::connectSlotsByName: No matching signal for on_buttonBox_accepted()
对话框类中有一个具有该名称的槽,我使用它。我不知道为什么Qt认为,应该有另一个信号,连接到那个插槽。(我检查了c++和.ui文件)