QLineWidget returnPressed 信号不起作用
Posted
技术标签:
【中文标题】QLineWidget returnPressed 信号不起作用【英文标题】:QLineWidget returnPressed signal not working 【发布时间】:2015-09-06 21:40:13 【问题描述】:我在QWidget
内有一个QLineWidget
,它是一个选项卡(QTabWidget
'page'),我正在尝试使用returnPressed
信号,但它不起作用,它之前工作过但我完全改变了代码结构,它不再是了。
应用程序输出QMetaObject::connectSlotsByName: No matching signal for on_urlEntry_returnPressed()
小部件类头:http://pastebin.com/GbMNmjUD Widget类来源:http://pastebin.com/chdkhBRy
【问题讨论】:
为什么不尝试显式连接信号和插槽? 好的,这可行,但我不确定这是否是最好的方法,即使是,我认为了解我目前的方法出了什么问题很重要。 你能附上你的.ui
文件吗?
我没有使用 .ui 文件,我使用 QT Design 创建了 UI,并使用源代码作为基础。
【参考方案1】:
首先,您应该提供一个最小的工作示例,而不是那一堆代码。
其次,如果您只是使用调试器,您会注意到警告出现在第二次调用 QMetaObject::connectSlotsByName
之后。这意味着BrowserTab
对象没有一个名为urlEntry
的子对象和一个名为returnPressed
的信号。发生这种情况是因为您创建的所有控件小部件都成为 BrowserTab::setupUi
中传递的 Browser
对象的子级,而不是 BrowserTab
。
【讨论】:
【参考方案2】:为什么要在标签中创建新的小部件作为Browser
的子级?使用this
而不是Browser
。
在您的代码中,标签的子元素属于标签的父元素。
【讨论】:
以上是关于QLineWidget returnPressed 信号不起作用的主要内容,如果未能解决你的问题,请参考以下文章