在Qt编程在lineEdit中输入完内容后点击pushbutton并在TextBrowser显示lineEdit中的内容

在Qt编程在lineEdit中输入完内容后点击pushbutton并在TextBrowser显示lineEdit中的内容,第1张

信号槽机制是这样的:connect(XXX,SIGNAL(),this,SLOT(YYY));

帮你实现了你要的功能:(直接划到最底下有完整代码)

1,写在h的内容,有三句话,注意位置

在piblic:添加声明  !!!

QString str;   //声明str,用于接收输入的字符串

在三个权限关键字最后另起一行写 !!!

public slots://这里要回车,字体变**

void on_clicked();//函数名随意,括号不能少,有必要时括号里要写参数   

2,在cpp中调用。

在h把鼠标放在on_clicked()右击,在cpp添加定义(列表第七项下面第二项),系统会自己帮定义,在定义里写需要绑定的事件,比如你这里要将lineEdit中的字符串在TextBrowser中显示。

void MainWindow::on_clicked(){

str = ui->lineEdit->text(); //这句获取输入的信息,一定要写在按钮槽函数里,因为按钮按下之前str存的值为空。这是按钮触发了才把值存到str中,没按之前我们就写了东西,所以按下了str读到的是自己写的内容。写在外面错误的方式就算自己写了内容运行的时候仍然是空,因为这里不是动态获取,自己消化一下

//   ui->textBrowser->clear(); //如果希望每一次按确定后只显示一行就用这条语句,先把原来浏览器的内容清空,再把结果显示出来。

ui->textBrowser->append(str+"\n");//这里写的功能是把str追加到textBrowser中;我这里用换行是把第二次的输入也显示到浏览器中

//     ui->textBrowser->setText(str); //这里也可以用setText方法,效果一样

}

3,在主函数写完整信号槽。

connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(on_clicked()));  //连接信号槽事件

//格式:connect(发送信号控件,SIGNAL(控件里的一个信号),接收的界面或控件(在同一页面一般是this),SLOT(刚定义的槽函数(函数写实现的功能));

运行效果图:

运行的整体效果

输入第一句话,显示的内容

第二句,回车格式在代码加的

一样的,可以输入任何字符,数字,中文

sentence4

窗口可以拉伸调整的

鼠标放在窗口边沿,窗口可以放大缩小,任意拉伸。qt application默认的。

头文件代码截图

源文件代码截图

ui界面和对象名称

//头文件:太啰嗦了,你自己把啰嗦的删掉吧,我只是怕初学者会理解不到位,故意啰嗦的

class MainWindow : public QMainWindow{

    Q_OBJECT

public:

    explicit MainWindow(QWidget parent = 0);

    ~MainWindow();

    QString str;   //声明str,用于接收输入的字符串

private:

    Ui::MainWindow ui;

public slots:    //这里要回车,字体变**

    void on_clicked();  //函数名随意,括号不能少,有必要时括号里要写参数

};//源文件:

MainWindow::MainWindow(QWidget parent) :    QMainWindow(parent),

    ui(new Ui::MainWindow)

{

    ui->setupUi(this);

    ui->lineEdit->setPlaceholderText(QStringLiteral("Please input"));

    

///以下两条语句写的位置不对,可能会得不到期望效果(不信你就解除屏蔽看看效果)///

//    QString str;   //创建字符串,错误,最好在头文件声明

//    str = ui->lineEdit->text();//获取lineEdit的文本内容(最初文本内容为空,程序一运行就把lineEdit的空白存到str了,所有点击按钮发现上面是没有内容的)

    connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(on_clicked()));  //连接信号槽事件

///格式:connect(发送信号控件,SIGNAL(控件里的一个信号),接收的界面或控件(在同一页面一般是this),SLOT(刚定义的槽函数(函数写实现的功能));

}

void MainWindow::on_clicked()

{

     str = ui->lineEdit->text(); //这句获取输入的信息,一定要写在按钮槽函数里,因为按钮按下之前str存的值为空或者未知。

//     ui->textBrowser->clear();  //如果希望每一次按确定后只显示一行就用这条语句,先把原来浏览器的内容清空,再把结果显示出来。

     ui->textBrowser->append(str+"\n");//这里写的功能是把str追加到textBrowser中;我这里用换行是把第二次的输入也显示到浏览器中

//     ui->textBrowser->setText(str); //这里也可以用setText方法,效果一样

}

我不清楚你是如何来修改值的,触摸屏?

如果仅仅是PLC中的 *** 作,你可以:

LD< D1 K2000

CJ xxx

通过比较+跳转来跳过能够修改D1值的程序段。

如果是触摸屏中的话,你可以使用互锁功能来限制数值输入框的数据。

例如在富士的触摸屏中,可以通过显示或者权限来限定。

实际上就是把CurrentDate()的值转换成QString。

CurrentDate() 返回的是 QDate对象,调用该对象的 toString() 函数就可以了

例如:

MyLineEditsetText( QDate::CurrentDate()::toString("yyyy-MM-dd") ) ;

其中的“yyyy-MM-dd” 是要输出的格式,MyLineEdit是你的 QLineEdit 的对象

靠,这么多天了居然没有人回答你,那就我来回答吧

转换进制的函数我就不说了, 百度上一搜一大片。

至于怎么在另一个框显示就很容易了,如果你是QLineEdit的话,只需要把转换进制函数的返回值传给

QLineEdit对象的SetText函数就行了。而从QLineEdit中获取内容就直接调用text()函数

为什么要用一个全局的结构变量,而不是直接用类的成员变量来代替呢?不过你非要用也可以,那就用一个单件类来实现。

类定义类似于下面这种格式

//Data类定义开始

//datah

class Data

{

public:

static Data getInstace()

{

if(m_pData == 0)

{

m_pData = new Data();

}

return m_pData;

}

~Data(){}

void setA(int n)

{

a = n;

}

int valueA()

{

return a;

}

void setB(int n)

{

b = n;

}

int valueB()

{

return b;

}

private:

Data():a(0),b(0){}

int a;

int b;

static Data m_pData;

};

Data Data::m_pData = 0;

//Data类定义结束

然后在你需要使用这个类的地方做下面的调用

#include "datah"

Data pData = Data::getInstace(); //获取Data类的对象

pData->setA(1); //设置a的值

pData->setB(2); //设置b的值

int a = pData->valueA(); //获取a的值

int b = pData->valueB(); //获取b的值

如果不再需要该类,记得释放该类占用的内存空间,例子如下

Data pData = Data::getInstace(); //获取Data类的对象

delete pData;

老兄,好象你这里出错number = new QLineEdit(this,"number");QLineEdit构造函数的第一个参数是QString类,第二个才是父窗口参数;

str = number -> texttoString();

这句也出错,number->text()才对,而且它就直接返回是QString类了,为什么还要转换为String呢?何况没有这个函数啊(toString()在这里是没有的;

另外,如果用str = number -> text()也会出错。str是地址,右边是字符串,应该改为:

str = number -> texttoString();

你再试试

以上就是关于在Qt编程在lineEdit中输入完内容后点击pushbutton并在TextBrowser显示lineEdit中的内容全部的内容,包括:在Qt编程在lineEdit中输入完内容后点击pushbutton并在TextBrowser显示lineEdit中的内容、如何限定QLineEdit的值的范围、关于Qt。QDate中currentDate() 的返回值是什么类型的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9330088.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存