gpt4 book ai didi

c++ - 使用 Qt 的两个按钮和一个标签之间的基本交互

转载 作者:行者123 更新时间:2023-11-30 03:02:26 26 4
gpt4 key购买 nike

我是 Qt 编程的新手,我对下面的代码有一些疑问。我想创建一个带有一个标签的简单的两个按钮应用程序。一个按钮用于正增量,另一个按钮用于减量。单击加号或减号按钮后,标签应该会更新。但它不起作用。任何想法为什么代码不起作用?我收到一个元素函数 void 的编译器错误。但错误消息相当不明确。

我在互联网上(密集的谷歌搜索以及此处的 stackoverflow)查找解决方案,但找不到。我非常感谢任何直接帮助或与其他网站/链接的链接。如果我应该改写问题或添加更多信息,请告诉我。谢谢你的时间。斯特凡

#include "widget.h"

int counter = 0;

Widget::Widget(QWidget *parent) :
QWidget(parent)
{
setFixedSize(200, 120);

QPushButton *Plus = new QPushButton(tr("+"), this);
Plus -> setGeometry(62, 40, 75, 30);
Plus -> setFont(QFont("Times", 10, QFont::Bold));

QPushButton *Minus = new QPushButton(tr("-"), this);
Minus -> setGeometry(62, 40, 75, 30);
Minus -> setFont(QFont("Times", 10, QFont::Bold));

QLabel *MyLabel = new QLabel();
MyLabel ->setAlignment(Qt::AlignCenter);
MyLabel ->setGeometry(62, 40, 75, 30);
MyLabel ->setNum(counter);

QVBoxLayout *layout = new QVBoxLayout;
layout ->addWidget(MyLabel);
layout ->addWidget(Plus);
layout ->addWidget(Minus);
setLayout(layout);


connect(Plus, SIGNAL(clicked()), this, SLOT(myClickPlus()));
connect(Minus, SIGNAL(clicked()), this, SLOT(myClickMinus()));
}

void Widget::myClickPlus(){
counter ++;
qDebug("Das ist der Plus-Button");
MyLabel -> setNum(counter);
}

void Widget::myClickMinus()
{
counter --;
qDebug("Das ist der Minus-Button");
MyLabel ->setNum(counter);
}

最佳答案

您在 Widget 的构造函数中创建的 MyLabel 是一个局部变量。您在 myClickPlus 和 myClickMinus 成员函数中使用的 MyLabel 是一个成员变量。所以它们是完全不同的实例。

如果您的代码可以编译,那么 Widget 构造函数中的这个更改可能会解决问题:

QLabel *MyLabel = new QLabel(); // create local QLabel

-->

MyLabel = new QLabel();  // create member QLabel

关于c++ - 使用 Qt 的两个按钮和一个标签之间的基本交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10164422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com