Простой пример GUI на PERL (QT)

14 января 2014г. Fedora 20.

Создаёт форму со строкой редактирования и кнопкой.
В строку редактирования передаётся первый аргумент командной строки.
При нажатии кнопки, выводится окно с сообщением, при закрытии которого, в стандартный вывод выводится содержимое строки редактирования и программа завершается.

Исходник

#!/usr/bin/perl

# ------------------------------------------------------------------------------------------ fMain class
package fMain;

use strict;
use utf8;	# Поддержка UTF8 в графике
use Encode qw(decode);	# Для преобразования командной строки
use QtCore4;
use QtGui4;
use QtCore4::isa qw (Qt::Dialog);	# Для главной формы используем класс QDialog
use QtCore4::slots bRunPressed => [];	# Слот для обработки нажатия кнопки

my $edit;

sub NEW {
	shift->SUPER::NEW(@_);
	resize (400,70);	# Изменение размера главной формы
	$edit = Qt::LineEdit (@ARGV[0],this);	# Строка редактирования с текстом, передаваемым в качестве первого параметра при запуске программы
	$edit->move (10,20);	# Координаты строки редактирования
	$edit->resize (190, 22);	# Размер строки редактирования
	my $bRun = Qt::PushButton ("Нажми меня...",this);	# Кнопка
	$bRun->move (200,20);	# Координаты кнопки
	$bRun->resize (190, 22);	# Размер кнопки
	this->connect ($bRun, SIGNAL 'clicked()', SLOT 'bRunPressed()');	# При нажатии кнопки вызвать функцию
}
# Функция обработки нажатия кнопки
sub bRunPressed {
	Qt::MessageBox::about (this, "Проверка", "Пример Message box.");
	binmode (STDOUT,':utf8');	# Вывод в консоль осуществлять в UTF8
	print $edit->text()."\n";	# Вывод в консоль содержимого строки редактирования
	exit();
}
1;

# ------------------------------------------------------------------------------------------ Main
@ARGV = map {decode ("UTF8", $_)} @ARGV;	# Преобразовать командную строку
my $app = Qt::Application (\@ARGV);	# Создать экземпляр приложения
my $mainWin = fMain->new();	# Создать экземпляр окна (QDialog)
$mainWin->show();
exit $app->exec();

Результат

Наверх