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去包含它.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值