Qt如何實(shí)現(xiàn)按鈕控制文本框顯示按鈕上的字符
很簡(jiǎn)單的程序,LZ自己寫(xiě)吧……
大致如下:
首先自定義一個(gè)類,繼承自QWIDGET,此類有QPUSHBUTTON,QLINEEDIT這兩個(gè)子部件,再自定義一個(gè)槽函數(shù),用來(lái)修改qlineedit中文本內(nèi)容,再用個(gè)connect將qpushbutton的clicked()信號(hào)與自定義槽連接就可以了。
點(diǎn)擊按鈕彈出對(duì)話框 qt
我用的qt4+kdevelop開(kāi)發(fā),我來(lái)說(shuō)一下步驟吧,供你參考:
(ps:qt3是可以建立 C++工程的,qt4只能做界面)
現(xiàn)在,我要建立一個(gè)對(duì)話框,對(duì)話框內(nèi)只有一個(gè)按鈕(pushButton),點(diǎn)擊按鈕會(huì)彈出一個(gè)MessageBox.步驟如下:
1、新建一個(gè)文件夾test3,打開(kāi)designer制作好界面
2、在test3文件夾內(nèi)添加3個(gè)文件,分別為test3.h,test3.cpp,main.cpp,在test3.h添加如下代碼:
#ifndef TEST3_H
#define TEST3_H
#include <QtGui/QDialog>
#include <QStandardItemModel>
#include "ui_test3.h"
class test : public QDialog
{
Q_OBJECT
public:
test(QWidget *parent = 0);
~test();
private:
Ui_Dialog ui;
private slots:
void on_pushButton_clicked();
};
#endif
在test3.cpp中添加如下代碼:
#include "test3.h"
#include <QLibrary>
#include <QMessageBox>
test::test(QWidget *parent)
: QDialog(parent)
{
ui.setupUi(this);
}
test::~test()
{
}
void test::on_pushButton_clicked()
{
QMessageBox::information(this,tr("hello"),tr("Mars"));
}
在main.cpp中添加如下代碼:
#include <QtGui>
#include <QApplication>
#include "test3.h"
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
test *dialog = new test;
dialog->show();
return app.exec();
}
3、打開(kāi)控制臺(tái),輸入如下命令:qmake -project會(huì)生成一個(gè)test3.pro的工程文件
4、打開(kāi)kdevelop,選擇project->import existing project,選中test3文件夾。
5、build->build project
6、運(yùn)行吧
再說(shuō)兩句(ps:我承認(rèn)我多嘴)
vc里面給一個(gè)按鈕添加事件只需要通過(guò)雙擊按鈕就可以了,但是這里不一樣,通常情況下有兩種方法。1、按照一定的命名規(guī)則為一個(gè)函數(shù)取名字,規(guī)則如下:on_name_singal,比如要為pushButton_2添加一個(gè)事件,只需要將相應(yīng)函數(shù)命名為 on_pushButton_2_clicked();就可以了.2、使用connect連接控件和相應(yīng)的函數(shù),比如上面的例子我們可以在構(gòu)造函數(shù)里添加 connect(pushButton,SIGNAL()clicked(),this,SLOT(hahaha()));
(ps:先把on_pushButton_clicked()函數(shù)改名為hahaha)
也行。那么,我想你也應(yīng)該明白代碼寫(xiě)在那里了吧,就是在on_pushButton_clicked()函數(shù)里面。
我講完了
如題,在Qt Creator中 當(dāng)按下按鈕,會(huì)在label中顯示所按按鈕的坐標(biāo)。怎么實(shí)現(xiàn)?
給按鈕創(chuàng)建點(diǎn)擊事件槽函數(shù),在函數(shù)里面獲取按鈕坐標(biāo)
ui->pushButton0->x();
ui->pushButton0->y();
QString X_Y
X_Y=QString("X=%1 Y=%2!").arg(QString::number(ui->pushButton0->x())).arg(QString::number(ui->pushButton0->y())) );
獲取x,y坐標(biāo)
ui->label->setText(X_Y);
用QT事件:
void mouseMoveEvent ( QMouseEvent * e )
{
int xPos, yPos;
xPos = e->globalPos().x() ;
yPos = e->globalPos().y() ;
然后將xPos,yPos轉(zhuǎn)為QString ;
label->setText(QString);
}
相關(guān)推薦:
最高額保證法律依據(jù)(民法典后保證最高額擔(dān)保的規(guī)定)
中外合資經(jīng)營(yíng)企業(yè)的資本(中外合資企業(yè)注冊(cè)資本金要求)
車輛抵押貸款(汽車抵押貸款需要什么條件)
國(guó)有企業(yè)設(shè)立的資料(國(guó)有企業(yè)注冊(cè)條件)
怎么注冊(cè)公司流程(公司注冊(cè)流程及需要的材料)