QT学习笔记(1)


QT学习笔记(1)

表格测试

#include
#include
#include
#include
#include
#include
#include
#include

using namespace std;

class MyLabel:public QLabel
{

    //Q_OBJECT
public slots://自定义槽函数
    void resetText(QTableWidgetItem*item);

};
//槽函数的类外实现
void MyLabel::resetText(QTableWidgetItem *item)
{this->setText(item->text());}
//主函数
int main(int argc,char*argv[])
{
    QApplication a(argc,argv);
QWidget w;
w.setWindowTitle("我的表格窗口");
w.resize(1000,500);
QTableWidget t(4,3,&w);
t.resize(1000,400);
t.setFont(QFont("宋体",20));
t.setHorizontalHeaderLabels(QStringList()<<"标题"<<"网址"<<"作者");
t.setEditTriggers(QAbstractItemView::NoEditTriggers);
t.setItem(0,0,new QTableWidgetItem("QT学习笔记(1)"));
t.setItem(0,1,new QTableWidgetItem("https://www.cnblogs.com/zhangdezhang/p/16277071.html"));
t.setItem(0,2,new QTableWidgetItem("zdz"));
t.setItem(1,0,new QTableWidgetItem("C++学习笔记(2)"));
t.setItem(1,1,new QTableWidgetItem("https://www.cnblogs.com/zhangdezhang/p/16268859.html"));
t.setItem(1,2,new QTableWidgetItem("zdz"));
t.setItem(2,0,new QTableWidgetItem("C++学习笔记(1)"));
t.setItem(2,1,new QTableWidgetItem("https://www.cnblogs.com/zhangdezhang/p/16264787.html"));
t.setItem(2,2,new QTableWidgetItem("zdz"));

MyLabel label;
label.setText("请选择一个单元格");
label.setParent(&w);
label.resize(900,150);
label.move( QPoint(0,400));
label.setAlignment(Qt::AlignCenter);
label.setFont(QFont("宋体",30));

QObject::connect(&t,QTableWidget::itemClicked,&label,MyLabel::resetText);

w.show();
   return a.exec();

}

运行结果

按钮测试

#include
#include

//按钮测试

int main(int argc,char*argv[])//主函数
{
    QApplication a(argc,argv);//创建应用

    QWidget w;//创建窗口
    w.setWindowTitle("QT真是牛逼");//设置窗口标题
    w.setStyleSheet("QWidget{background-color:green;}");//窗体背景绿色
    QPushButton b("QPushButton按钮",&w);//设置父对象
    b.move(100,100);//设置位置
    //设置字体大小,设置背景颜色
    b.setStyleSheet("QPushButton{font:20px;background-color:red;}");
    b.resize(200,200);//设置尺寸
    //设置信号槽,点击按钮--按钮隐藏
    QObject::connect(&b,QPushButton::clicked,&b,QPushButton::hide);


    w.show();//显示窗口
    return a.exec();//循环等待
}

运行结果

QT思维导图

QT的信号槽的消息机制(事件/委托-事件处理函数);

QObject::connect(&b,QPushButton::clicked,&w,QWidget::close);