将值传递给自定义QtWidget的最佳方法 我还在学习C++和QT,我想知道在不需要太多连接的情况下,在多个元素之间传递一个值的最好方法是什么。
目前,我有一个小部件将值传递给自定义QtWidget的最佳方法 我还在学习C++和QT,我想知道在不需要太多连接的情况下,在多个元素之间传递一个值的最好方法是什么。,c++,qt,C++,Qt,目前,我有一个小部件SamplerModule,其中我放置了许多自定义QPushButton(即ChordSelector)。 在这个小部件中,我为每个按钮建立了一个连接: connect(ui->btn_accords_X, SIGNAL(clicked()), ui->btn_accords_X, SLOT(changeChor())); 使用X从01到12 现在,当我点击一个按钮时,它只是改变了这个按钮的颜色。但是我还想为它设置一个文本,该文本的值可以在我的采样器模块类中找到
SamplerModule
,其中我放置了许多自定义QPushButton
(即ChordSelector
)。
在这个小部件中,我为每个按钮建立了一个连接:
connect(ui->btn_accords_X, SIGNAL(clicked()), ui->btn_accords_X, SLOT(changeChor()));
使用X
从01
到12
现在,当我点击一个按钮时,它只是改变了这个按钮的颜色。但是我还想为它设置一个文本,该文本的值可以在我的采样器模块
类中找到。每次我点击这个按钮,我想返回一个递增的值
因此,我考虑通过3个连接来实现这一点:
单击()
newChord(int)(ChordSelector)->updateChord(int)(samplemodule)
通知我的小部件一个chord已更改changeText(QString)(samplemodule)->setText(QString)(ChordSelector)
QPushButton
将在\u yourButtonName\u clicked()上有一个名为的默认插槽。它将自动连接到您的QPushButton
的click()
信号。这可能会保存第一个连接
ChordSelector
中保持指向SamplerModule
的指针,或拥有SamplerModule
的全局单例实例,以便在ChordSelector
中轻松访问。这样,您就不必使用signal/slot来调用updatecord(int)
,一个简单的函数调用就可以了。这将保存第二个连接ChordSelector
的click()插槽中调用setText(QString)
,而不是在SampleModule
中调用。这将保存第三个连接
谢谢,伙计,首先,我不明白为什么在你的按钮上单击名称()会保存连接。它只是将click()插槽替换为on_yourButtonName_clicked()?然后,因为我只是C++的初学者,这是我的问题的一部分,我试图在<代码> ChordSelector < /COD>中访问<代码> SamplerModule <代码>的数据,所以使用另一个带有“and”代码> ExtNe< /Cuff>变量的头将是一个解决方案,但它似乎不是正确的方法。因为我无法将
采样器模块
包含在ChordSelector
中,也不知道如何操作。在这个类中,什么是“握住指针”的正确方法?非常感谢。1.您可以考虑<代码> OnYouButnNAME.CLICKEDE()/<代码>作为自动连接槽。因此,您不必手动连接它。2.ChordSelector
是否可以是单例实例(全局仅一个实例)?如果是这样,您可以实现为一个单例类。有关单身人士课程的更多信息,请参阅。谢谢!我会努力实现的!