zoukankan      html  css  js  c++  java
  • QT学习3:QT4中调用QT3的原有类

      
    #define QT3_SUPPORT
    #include <QApplication>//在每一个使用QT的应用程序中都必须使用QApplication,它管理了各种
    //应用程序的广泛资源,比如默认字体和光标
    #include <QPushButton.h>//经典的图形用户界面按钮,QWidget,可以显示一段文本或QPixmap
    #include <QFont.h>//QT中的字体
    #include <Q3Vbox.h>//布局类,QVBox把它的子窗口排成垂直的行,QVbox是QT3的,要使用它
    //必须在建工程时选上Qt3 Support library,命名为Q3XXX
    int main(int argc, char *argv[])
    {
    	QApplication a(argc, argv);//argc是命令行变量的数量,argv是数组,C、C++特征
    
    	Q3VBox box;
    	box.resize(200, 120);
    
    	QPushButton quit("Quit", &box);
    	quit.setFont(QFont(("Arial"), 18, QFont::Bold));
    
    	//---QT的信息槽机制 --------------------
    	//---这是个静态函数 --------------------
    	//---connect把quit的clicked信号和a的quit槽连接起来了
    	QObject::connect(&quit, SIGNAL(clicked()), &a, SLOT(quit()));
    
    	//-------------------------------------------
    	//void QApplication::setMainWidget ( QWidget * mainWidget )
    	//设置应用程序的主窗口部件为hello.
    	//它退出,程序也退出了,这个好像只能在QT3_SUPPORT定义后使用
    	//-------------------------------------------
    	a.setMainWidget(&box);
    
    	//--------------------------------------------
    	// Shows the widget and its child widgets. 
    	// This function is equivalent to setVisible(true).
    	//--------------------------------------------
    	//hello.show();//当创建一个窗口部件时,它是不可见的,你必须调用show让它可见   
    	box.setVisible(TRUE);
    
    	return a.exec();//控制转给QT,在exec中,QT接收并处理用户和系统的事件并把它们传给适当的窗口部件
    
    }
    


    1.建项目时要选上Qt3 Support library

    2.QT3中不再被QT4用的代码都放在\qt\include\Qt3Support,并命名为Qt3XXX

    3.可以直接用QT4的QVBoxLayout 代替
    代码如下:

    #define QT3_SUPPORT
    #include <QApplication>//在每一个使用QT的应用程序中都必须使用QApplication,它管理了各种
    //应用程序的广泛资源,比如默认字体和光标
    #include <QPushButton.h>//经典的图形用户界面按钮,QWidget,可以显示一段文本或QPixmap
    #include <QFont.h>//QT中的字体
    #include <QVBoxLayOut>
    int main(int argc, char *argv[])
    {
    	QApplication a(argc, argv);//argc是命令行变量的数量,argv是数组,C、C++特征
    
    	QWidget window;
    	window.resize(200, 120);
    
    	QVBoxLayout layout;
    	
    	QPushButton quit("Quit", &window);
    	quit.setFont(QFont(("Arial"), 18, QFont::Bold));
    
    	//---QT的信息槽机制 --------------------
    	//---这是个静态函数 --------------------
    	//---connect把quit的clicked信号和a的quit槽连接起来了
    	QObject::connect(&quit, SIGNAL(clicked()), &a, SLOT(quit()));
    
    	//-------------------------------------------
    
        layout.addWidget(&quit);
    	window.setLayout(&layout);
    	//--------------------------------------------
    	// Shows the widget and its child widgets. 
    	// This function is equivalent to setVisible(true).
    	//--------------------------------------------
    	//hello.show();//当创建一个窗口部件时,它是不可见的,你必须调用show让它可见   
    	window.setVisible(TRUE);
    
    	return a.exec();//控制转给QT,在exec中,QT接收并处理用户和系统的事件并把它们传给适当的窗口部件
    }
    


    1.注意到,Q3VBox是基于QWidget再基于QObject,而QVBoxLayout不基于QWidget直接基于QObject,所以它得弄个widget去包含它.

  • 相关阅读:
    2020.06.09——习题训练五
    2020.06.01——习题训练4
    2020-05-26 — 习题训练三
    2020-05-22 — 习题训练二-F
    Java笔记(22):IO流(04)
    Java笔记(21):IO流(03)
    Java笔记(20):IO流(02)
    Java笔记(19):IO流(01)
    Java笔记(18):集合框架(04)
    Java笔记(17):集合框架(03)
  • 原文地址:https://www.cnblogs.com/hgy413/p/3693723.html
Copyright © 2011-2022 走看看