如何在perl中使用Qt GUI(使用Qt Designer创建)?
发布时间:2020-12-16 06:16:47 所属栏目:大数据 来源:网络整理
导读:我在Qt Designer中创建了Qt GUI并将其编译(使用puic4)到gui.pm. 现在,我想在我的Perl应用程序中使用它,但是因为我不知道如何创建窗口对象而被卡住了. 我在start.pl中有以下代码: use strict;use QtCore4;use QtGui4;use gui; #compiled gui ('Ui_MainWindow
我在Qt Designer中创建了Qt GUI并将其编译(使用puic4)到gui.pm.
现在,我想在我的Perl应用程序中使用它,但是因为我不知道如何创建窗口对象而被卡住了. 我在start.pl中有以下代码: use strict; use QtCore4; use QtGui4; use gui; #compiled gui ('Ui_MainWindow' package) my $a = Qt::Application(@ARGV); my $w = ??? #assign window object to $w $w->show(); exit $a->exec(); 我只需要创建窗口对象,但我找不到用perl编写的任何示例.有人可以帮帮我吗? 解决方法
我在源代码库中找到了以下解决方案:
BUILD_DIR/Qt4-0.99.0/qtgui/examples/designer/calculatorform >构建您的Ui模块 > puic4 Window.ui -o Ui_MainWindow.pm ################################################################################# ## Form generated from reading UI file 'Window.ui' ## ## Created: Do. Aug 27 20:57:17 2015 ## by: Qt User Interface Compiler version 4.8.2 ## ## WARNING! All changes made in this file will be lost when recompiling UI file! ################################################################################ package Ui_MainWindow; use strict; use warnings; use QtCore4; use QtGui4; sub centralwidget { return shift->{centralwidget}; } sub pushButton { return shift->{pushButton}; } sub pushButton_2 { return shift->{pushButton_2}; } sub menubar { return shift->{menubar}; } sub statusbar { return shift->{statusbar}; } sub setupUi { my ( $class,$mainWindow ) = @_; my $self = bless {},$class; if ( !defined $mainWindow->objectName() ) { $mainWindow->setObjectName( "mainWindow" ); .... >创建一个启动模块MainWidow.pm.你必须“施放”UI类. package MainWindow; use strict; use warnings; use QtGui4; # Cast the exact Qt Type for your UI class use QtCore4::isa qw( Qt::MainWindow ); use Ui_MainWindow; sub NEW { my ( $class,$parent ) = @_; $class->SUPER::NEW($parent); this->{ui} = Ui_MainWindow->setupUi(this); } >编写应用程序perl脚本Main.pl: #!/usr/bin/perl use strict; use warnings; use QtCore4; use QtGui4; use MainWindow; sub main { my $app = Qt::Application( @ARGV ); my $win = MainWindow(); $win->show(); exit $app->exec(); } main(); 哈哈 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |