使用 qt c++ 在 BlackBerry 10 应用程序的屏幕中间显示按钮
Display buttons in the middle of the screen in BlackBerry 10 app using qt c++
我想要在我的应用程序中显示如下所示的屏幕:
这意味着屏幕中的按钮应该出现在屏幕的水平和垂直中心。
有没有人知道怎么做。我已经编写了以下代码,但它不起作用。
Container *contentContainer = new Container();
contentContainer->setLayout(StackLayout::create());
//contentContainer->setVerticalAlignment(VerticalAlignment::Center);
contentContainer->setHorizontalAlignment(HorizontalAlignment::Center);
Button* submitButton = new Button();
submitButton->setText("Submit");
Button* cancelButton = new Button();
cancelButton->setText("Cancel");
contentContainer->add(submitButton);
contentContainer->add(cancelButton);
Page * testPage = new Page();
testPage ->setContent(contentContainer);
Sheet *testSheet = new Sheet();
testSheet->setContent( LoginSheetPage );
testSheet->open();
要使其居中,首先您必须使用 docklayout() 创建容器,在该容器内,您必须使用按钮创建 stacklayout() 并将 docklayout() 容器设置为页面的内容。
Container *contentContainer = new Container();
contentContainer->setLayout(StackLayout::create());
contentContainer->setVerticalAlignment(VerticalAlignment::Center);
contentContainer->setHorizontalAlignment(HorizontalAlignment::Center);
Button* submitButton = new Button();
submitButton->setText("Submit");
Button* cancelButton = new Button();
cancelButton->setText("Cancel");
contentContainer->add(submitButton);
contentContainer->add(cancelButton);
Container *rootContainer = new Container();
rootContainer->setLayout(DockLayout::create());
rootContainer->setVerticalAlignment(VerticalAlignment::Fill);
rootContainer->setHorizontalAlignment(HorizontalAlignment::Fill);
rootContainer->add(contentContainer);
Page * testPage = new Page();
testPage ->setContent(rootContainer);
当您需要指定您的内容需要停靠的位置时,您应该使用 DockLayout。然后,根据您希望它们停靠的位置,在其子项上设置垂直和水平对齐属性。你的情况:
Container *sheet_container = Container::create().layout(DockLayout::create());
Container *button_container = Container::create()
.layout(StackLayout::create())
.horizontal(HorizontalAlignment::Center)
.vertical(VerticalAlignment::Center);
Button *submit_button = new Button();
submit_button->setText("Submit");
Button *cancel_button = new Button();
cancel_button->setText("Cancel");
button_container->add(submit_button);
button_container->add(cancel_button);
sheet_container->add(button_container);
Page *test_page = new Page();
test_page->setContent(sheet_container);
Sheet *sheet = new Sheet();
sheet->setContent(test_page);
sheet->open();
这回答了您关于制作布局的问题,但我建议您查看 UI 指南并为此使用 Dialog 之类的内容。如果您没有 QML 难以满足的特定要求,我还建议使用 QML 而不是 C++ 进行布局设计。
我想要在我的应用程序中显示如下所示的屏幕:
这意味着屏幕中的按钮应该出现在屏幕的水平和垂直中心。
有没有人知道怎么做。我已经编写了以下代码,但它不起作用。
Container *contentContainer = new Container();
contentContainer->setLayout(StackLayout::create());
//contentContainer->setVerticalAlignment(VerticalAlignment::Center);
contentContainer->setHorizontalAlignment(HorizontalAlignment::Center);
Button* submitButton = new Button();
submitButton->setText("Submit");
Button* cancelButton = new Button();
cancelButton->setText("Cancel");
contentContainer->add(submitButton);
contentContainer->add(cancelButton);
Page * testPage = new Page();
testPage ->setContent(contentContainer);
Sheet *testSheet = new Sheet();
testSheet->setContent( LoginSheetPage );
testSheet->open();
要使其居中,首先您必须使用 docklayout() 创建容器,在该容器内,您必须使用按钮创建 stacklayout() 并将 docklayout() 容器设置为页面的内容。
Container *contentContainer = new Container();
contentContainer->setLayout(StackLayout::create());
contentContainer->setVerticalAlignment(VerticalAlignment::Center);
contentContainer->setHorizontalAlignment(HorizontalAlignment::Center);
Button* submitButton = new Button();
submitButton->setText("Submit");
Button* cancelButton = new Button();
cancelButton->setText("Cancel");
contentContainer->add(submitButton);
contentContainer->add(cancelButton);
Container *rootContainer = new Container();
rootContainer->setLayout(DockLayout::create());
rootContainer->setVerticalAlignment(VerticalAlignment::Fill);
rootContainer->setHorizontalAlignment(HorizontalAlignment::Fill);
rootContainer->add(contentContainer);
Page * testPage = new Page();
testPage ->setContent(rootContainer);
当您需要指定您的内容需要停靠的位置时,您应该使用 DockLayout。然后,根据您希望它们停靠的位置,在其子项上设置垂直和水平对齐属性。你的情况:
Container *sheet_container = Container::create().layout(DockLayout::create());
Container *button_container = Container::create()
.layout(StackLayout::create())
.horizontal(HorizontalAlignment::Center)
.vertical(VerticalAlignment::Center);
Button *submit_button = new Button();
submit_button->setText("Submit");
Button *cancel_button = new Button();
cancel_button->setText("Cancel");
button_container->add(submit_button);
button_container->add(cancel_button);
sheet_container->add(button_container);
Page *test_page = new Page();
test_page->setContent(sheet_container);
Sheet *sheet = new Sheet();
sheet->setContent(test_page);
sheet->open();
这回答了您关于制作布局的问题,但我建议您查看 UI 指南并为此使用 Dialog 之类的内容。如果您没有 QML 难以满足的特定要求,我还建议使用 QML 而不是 C++ 进行布局设计。