我已经在 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();
问候哈克
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)