Qt中来自不同功能的按钮引用
Button reference in Qt from different function
目前,我正在Qt中开发一个项目,该项目具有多个共享功能的按钮和文本框。
例如:
void SettingsMenu::on_normalTextColor_clicked()
{
QColor color = QColorDialog::getColor(Qt::yellow, this);
if(color.isValid())
{
QString qss = QString("background-color: %1").arg(color.name());
ui->normalTextColor-setStyleSheet(qss);
}
ui->normalTextHex->setText(color.name());
}
在这种情况下,normalTextColor
对应于一个按钮,如果单击该按钮,则会创建一个颜色对话框,然后将该按钮的颜色设置为所选颜色,并将文本设置为所选颜色的十六进制代码normalTextHex
(如果该颜色有效(。 我的其他按钮和框遵循相同的名称结构,按钮是[someLabel]Color,框是[someLabel]十六进制。
由于我有 20 多个这样的按钮要连接,我想创建一个可以引用的函数,而不是每次都写出所有代码。 我认为通过将按钮的名称作为字符串传递然后附加到它,我可以在总体函数中引用它。
例如:
void SettingsMenu::SetColorOfButton(QString temp)
{
QString tempColor = temp.Append("Color");
QString tempHex = temp.Append("Hex");
QColor color = QColorDialog::getColor(Qt::yellow, this);
if(color.isValid())
{
QString qss = QString("background-color: %1").arg(color.name());
ui->tempColor->setStyleSheet(qss);
}
ui->tempHex->setText(color.name());
}
这会导致错误:
"
Ui::SettingsMenu
中没有tempColor
成员">
我知道这是因为"ui->[someName]"调用不仅接受字符串,还接受对对象的引用。
但是,即使我将PushButton
对象作为指向SetColorOfButton
函数的指针传递,我也无法设置实际按钮的颜色,因为我当前正在查看指向该按钮的指针。
那么,我将如何从函数中引用一系列我在运行时不知道其名称的按钮呢?
找到了。 生成的函数将显示上述所需功能。
void SettingsMenu::SetColorOfButton(QString temp)
{
QString tempColor = temp.append("Color");
temp.chop(5);
QString tempHex = temp.append("Hex");
QPushButton *tempPushButton = findChild<QPushButton*>(tempColor);
QTextEdit *tempTextEdit = findChild<QTextEdit*>(tempHex);
QColor color = QColorDialog::getColor(Qt::yelow, this);
if(color.isValid())
{
QString qss = QString("background-color: %1").arg(color.name());
tempPushButton->setStyleSheet(qss);
}
tempTextEdit->setText(color.name());
}
感谢德雷舍姆的帮助。 我并不像我想象的那样了解findchild((的功能。
相关文章:
- QML按钮点击功能执行顺序
- Qt中来自不同功能的按钮引用
- winapi 中的哪个功能检查按钮是否正在关闭控制台?
- 是否有任何功能可以通过按不同的按钮来更改操作
- 如何将此功能连接到我的连接按钮?
- 禁用按钮功能(WX小部件)
- 将类功能连接到按钮.(QT C )
- 尝试将简单按钮绑定到SFGUI中的OnClick功能
- 为什么我的按钮类项目共享相同的lambda功能
- 如何从功能(C UWP应用程序)中修改按钮内容
- 用QT中的按钮结束功能
- 如何用按钮单击.h文件中的.cpp的功能
- 如何通过Qt实现浏览按钮功能
- c++FLTK(更多具有相同回调功能的按钮)
- 实现QT中按钮阵列的单一功能
- 对按钮事件执行功能
- 当我改变他的背景时,我失去了按钮的功能
- 在Qt创建器中将功能附加到按钮的正确方法
- 如何停止仍在使用按钮停止计算的功能
- 如何禁用QTextEdit的中间按钮功能