首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gtk2与线程中的故障分割

gtk2与线程中的故障分割
EN

Stack Overflow用户
提问于 2015-01-07 23:26:24
回答 1查看 73关注 0票数 1

我遇到了这个问题,这个小示例代码将检查用户名,如果它存在于MySQL服务器上。

代码语言:javascript
复制
#!/usr/bin/perl
use Gtk2 '-init';
use Glib qw/TRUE FALSE/;
use threads;
use threads::shared;
use DBI;
use DBD::mysql;

our $type="mysql";
our $database="store";
our $host="localhost";
our $port="3306";
our $tablename="topic";
our $user="root";
our $pwd="killme32";

our $dsn="dbi:$type:$database:$host:$port";
our $query;
our $queryhandle;
my $str:shared=0;

my $window=Gtk2::Window->new;
$window->signal_connect('delete_event',sub{Gtk2->main_quit;});
$window->set_title("Perl Gtk2 Tutorial");

my $vbox=Gtk2::VBox->new;
my $label=Gtk2::Label->new("Username: ");
my $button=Gtk2::Button->new("Login");
my $entry=Gtk2::Entry->new();
$button->signal_connect(clicked=>sub{
    $str=$entry->get_text;
    my $thr=threads->create(\&continue_checking);
});
$vbox->add($label);
$vbox->add($entry);
$vbox->add($button);
$window->add($vbox);
$window->show_all;
Gtk2->main;
sub continue_checking{
    our $connect=DBI->connect($dsn,$user,$pwd)or die &mysql_Err;
    $query="SELECT username FROM login WHERE username=\"$str\"";
    $queryhandle=$connect->prepare($query);
    $queryhandle->execute;
    $queryhandle->bind_columns(undef, \my $user_name);
    while ($queryhandle->fetch()) {
        if("$str" eq "$user_name"){
            &main;
        }
    }   
}
sub main{
    my $mw=Gtk2::Window->new;
    $mw->set_default_size(250, 250);
    my $label=Gtk2::Label->new("username $str is already exist");
    $mw->add($label);
    $mw->show_all;
    $mw->show;
}

错误结果:GObject **:无法在/usr/lib/perl/5.14/DynaLoader.pm第207行注册现有类型“`GConnectFlags”。Pango-警告**:塑造失败,期待丑陋的输出。shape-engine='BasicEngineFc',server.pl第40行的字体=‘DejaVu Sans 9.9990234375',text='’。分段故障

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-08 05:00:27

试着添加

代码语言:javascript
复制
use Gtk2 qw/-init -threads-init/;
Glib::Object->set_threadsafe (1);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27830523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档