0

長い文字列に十分なスペースを確保するために、phpでGtkMessageDialogのサイズを変更する必要があります(新しい行は必要ありません)。

それを作成します:

$dialog = new GtkMessageDialog($this->window, Gtk::DIALOG_MODAL, Gtk::MESSAGE_QUESTION, Gtk::BUTTONS_YES_NO, "");

メッセージ出力を設定します。

$message = "I NEED A LONG STRING TO DISPLAY IN THE DIALOG\n"
$dialog->set_markup($message);

ダイアログサイズを調整するにはどうすればよいですか?(文字列は1行に収まる必要があります)

感謝と挨拶

leon22

4

1 に答える 1

0

私が正しければ、ダイアログウィンドウの高さを増やすために新しい行を使用したくないでしょう。

方法に違いはありません。他のすべてのウィジェットと同じset_size_requestです。メソッドを使用するだけです。また、そのような問題が発生したときはいつでも、利用可能なメソッドを取得するように php に指示してください。

したがって、この例では、これを使用してすべてのメソッドを取得します。

file_put_contents("out.txt",print_r(get_class_methods($dialog),true));

これは、必要に応じてサイズを設定する完全な例です。

<?php
$window = new GtkWindow();
$window->set_size_request(400, 600);
$window->connect_simple('destroy', array('Gtk','main_quit'));

$message = '<b>DO I NEED</b> A LONG STRING TO <b><span foreground="blue"> '.
"DISPLAY IN THE DIALOG?</span></b>\n";

$dialog = new GtkMessageDialog($window, Gtk::DIALOG_MODAL, 
Gtk::MESSAGE_QUESTION, Gtk::BUTTONS_YES_NO, null); 

$dialog->set_size_request(600,400);
$dialog->set_markup($message);

$answer = $dialog->run();
$dialog->destroy(); 

if ($answer == Gtk::RESPONSE_YES) 
    echo "So I need it.";
else if ($answer == Gtk::RESPONSE_NO) 
    echo "I see, I don't need it.";
else 
    echo "Choose something.";

$window->show_all();
Gtk::main();
?>
于 2012-05-20T22:10:32.913 に答える