我在Qt Designer中创建了Qt GUI并将其编译(使用puic4)到gui.pm.
现在,我想在我的Perl应用程序中使用它,但是因为我不知道如何创建窗口对象而被卡住了.
现在,我想在我的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();
哈哈
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。