使用qt c ++在BlackBerry 10 app中显示屏幕中间的按钮

时间:2015-01-09 09:03:04

标签: c++ qt blackberry blackberry-10 blackberry-cascades

我想在我的应用程序中使用一个看起来像这样的屏幕:

enter image description here

这意味着屏幕上的按钮应该水平和垂直显示在屏幕的中央。

有人怎么做。我写了下面的代码,但它没有用。

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();

2 个答案:

答案 0 :(得分:2)

要使其成为中心,首先必须使用docklayout()创建容器,并且在此容器内部,您必须使用按钮创建stacklayout()并将docklayout()容器设置为Page的内容。

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);

答案 1 :(得分:0)

如果您需要指定内容需要停靠的位置,则应使用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 ++。