如何使用QPushButton更改另一个类的变量值
How to change the value of variables of another class using QPushButton?
我正在编写一个代码,我使用 QWidget 来创建我想要的小部件,后来我将这个小部件设置为中心小部件。
到目前为止一切顺利,但是在小部件中我有按钮,如果单击其中一个按钮,它会更改字符串变量值。
之后,我将其设置为中央小部件,我在 MainWindow 中创建了相同的按钮,但我无法再更改我想要的变量的值:(
{.....
linha_button=new QPushButton(this);
linha_button->setGeometry(QRect(QPoint(41,924),QSize(40,40)));
linha_button->setIcon(QIcon(url_linha));
linha_button->setIconSize(QSize(30,30));
linha_button->setCheckable(true);
QObject::connect(linha_button, SIGNAL (clicked()), this, SLOT (lihaButton()));}
void MainWindow::lihaButton()
{
Diagrama::modo="trafo";
}
变量modo在名为Diagrama的小部件中声明。此代码不执行,错误为:无效使用非=静态数据成员"modo">
我该如何解决这个问题??
将一个 setter 声明为Diagrama
类中的一个插槽,并将您的MainWindow
连接到它:
class Diagrama: public QWidget
{
Q_OBJECT
...
public slots:
void changeModo() { modo = "trafo"; }
};
在您的MainWindow
课上:
QObject::connect(linha_button, SIGNAL (clicked()), yourDiagramaObject, SLOT(changeModo()));
或者使用 lambda
connect(linha_button,&QPushButton::clicked,[this](){ modo = "trafo"; }) ;
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 运行同一解决方案的另一个项目的项目
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- C++从另一个类访问公共静态向量的正确方法是什么
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- 使用std::transform将一个范围的元素添加到另一个范围中
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- 我可以将一个用clang c++11编译的对象与另一个用c++17编译的对象链接起来吗
- 如何使用QPushButton更改另一个类的变量值
- 指针和将变量值从一个函数传递到另一个函数.如何使用指针传递变量值
- 向前推进::从一个访问者到另一个访问者的变体
- 如何在 c++ 中将 1 个函数变量值发送到另一个函数
- C++ 设计一个对象,使其采用变量值和规则来应用于它们
- 获取C++中的另一个进程变量值(或内存地址)
- 用另一个文件替换文件,但保持文件名不变
- 除了转换char*之外,还有更好的方法来获得一个变量值吗?
- 将数组的大小设置为从另一个常量的除法派生的常量值
- 需要帮助的变量转换和添加一个“”到现有的变量值
- 文件变得非常大,需要将数据分离到另一个文件中,但也需要使用私有变量.我怎样才能正确地做到这一点