gpt4 book ai didi

c++ - Qt 无法使 QEditLine 显示文本

转载 作者:行者123 更新时间:2023-11-27 23:06:12 26 4
gpt4 key购买 nike

我浏览了控制台应用程序,我想做一些与此不同的事情,继续前进并做一些更有野心的事情。我的 friend 告诉我有关 ide Qt 的信息。一切进展顺利,直到我碰壁,这真的阻止了我在新的 IDE 中开发我的第一个应用程序。以前我使用过 Visual Studio,由于互联网上有大量的 walktroughs,我经常自己找到答案,但这次我放弃了!所以这是我第一次寻求帮助。我的应用程序应该是一个简单的计算器。问题是我不能让 QEditLine 对象显示由按钮表示的数字,它永远不会改变并显示 0。如果我使用设计模式它会起作用,并且都一样,并且 dgtClicked() 函数的定义是QT提供的示例中几乎相同。如果有任何建议和帮助,我将非常高兴。这真的很烦人,我真的不喜欢留下这样没有答案的问题。

klk.cpp

#include "klk.h"
#include "ui_klk.h"

MainWindow::MainWindow(QWidget *parent) :
QWidget(parent)//,
// ui(new Ui::MainWindow)
{
//ui->setupUi(this);


dgtButton[0] = new QPushButton("&0");
dgtButton[1] = new QPushButton("&1");
dgtButton[2] = new QPushButton("&2");
dgtButton[3] = new QPushButton("&3");
dgtButton[4] = new QPushButton("&4");
dgtButton[5] = new QPushButton("&5");
dgtButton[6] = new QPushButton("&6");
dgtButton[7] = new QPushButton("&7");
dgtButton[8] = new QPushButton("&8");
dgtButton[9] = new QPushButton("&9");
for(int i =0;i<10;i++) {
connect(dgtButton[i], SIGNAL(clicked()),this,SLOT(dgtClicked()));
}

display = new QLineEdit("0");
display->setAlignment(Qt::AlignRight);
display->setMaxLength(15);
display->setReadOnly(true);

// centralWidget = new QWidget(this);
//this->setCentralWidget( centralWidget );
// layout = new QGridLayout( centralWidget );
layout = new QGridLayout;

layout->setSizeConstraint(QLayout::SetFixedSize);
layout->addWidget(display,0,0,1,3);
layout->addWidget(dgtButton[1],2,0);
layout->addWidget(dgtButton[2],2,1);
layout->addWidget(dgtButton[3],2,2);
layout->addWidget(dgtButton[4],3,0);
layout->addWidget(dgtButton[5],3,1);
layout->addWidget(dgtButton[6],3,2);
layout->addWidget(dgtButton[7],4,0);
layout->addWidget(dgtButton[8],4,1);
layout->addWidget(dgtButton[9],4,2);
setLayout(layout);

}

void MainWindow::dgtClicked()
{
QPushButton *clickedButton = qobject_cast<QPushButton *>(sender());
dgt = clickedButton->text().toInt();
this->display->setText(QString::number(dgt));
//display->displayText();
// display->show();
}

MainWindow::~MainWindow()
{
//delete ui;
}

klk.h

#ifndef KLK_H
#define KLK_H

#include <QMainWindow>
#include <QPushButton>
#include <QWidget>
#include <QGridLayout>
#include <QHBoxLayout>
#include <QLineEdit>
#include <string>

namespace Ui {
class MainWindow;
}

class MainWindow : public QWidget
{
Q_OBJECT
QPushButton *dgtButton[10];
QPushButton *addButton,*subButton;
QGridLayout *layout;
QWidget *centralWidget;
QLineEdit *display;

int dgt;


public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();

private:
// Ui::MainWindow *ui;
private slots:
void dgtClicked();
};

#endif // KLK_H

klk.pro

#-------------------------------------------------
#
# Project created by QtCreator 2014-04-30T15:37:36
#
#-------------------------------------------------

QT += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = klk
TEMPLATE = app


SOURCES += main.cpp\
klk.cpp

HEADERS += klk.h

FORMS += klk.ui

最佳答案

在将文本转换为整数之前去掉文本中的&

关于c++ - Qt 无法使 QEditLine 显示文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23397924/

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