我试图弄清楚如何将QtTabWidget中的两个标签向右移动,而将其余标签留在左侧。
标签是静态的,不会在运行时添加。
我已经尝试编辑样式表并添加<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Stream Audio and Play"
android:id="@+id/play"
/>
</LinearLayout
,但这只是使所有这些都正确,并且不适用于特定标签。我也尝试了诸如alignment:right;
和float
之类的东西,但没有运气。
我也无法在qt docs中找到任何似乎可以帮助我的内容。
所以我的问题是:如何移动&#34; Profile&#34;选项卡和&#34;设置&#34;选项卡在右边,而剩下的就在哪里?
答案 0 :(得分:5)
好吧,我认为只有一个QTabWidget
你不能这样做。首先,您确定需要使用QTabBar
而不是QSpacerItem
吗?
无论如何,您可以在QTabBars
和两个 QTabBars
中找到答案。
QHBoxLayout
; QSpacerItem
; QTabBar
,然后添加最后一个栏; 问题是 - 默认选择每个QTabBar
上的第一个栏。它通过在每个_firstBar = new QTabBar(this);
_firstBar->addTab("");
_firstBar->addTab("First tab");
_firstBar->addTab("Second tab");
_firstBar->addTab("Third tab");
_firstBar->addTab("Fourth tab");
_firstBar->setDrawBase(false);
_firstBar->setStyleSheet("QTabBar::tab:first { max-width: 0px; border: 0px }");
_secondBar = new QTabBar(this);
_secondBar->addTab("");
_secondBar->addTab("Fifth bar");
_secondBar->addTab("Sixth bar");
_secondBar->setDrawBase(false);
_secondBar->setStyleSheet("QTabBar::tab:first { max-width: 0px; border: 0px }");
QHBoxLayout *lay = new QHBoxLayout(ui->centralWidget);
lay->addWidget(_firstBar);
lay->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Fixed));
lay->addWidget(_secondBar);
connect(_firstBar, &QTabBar::currentChanged, this, &MainWindow::showFirstBarWidget);
connect(_secondBar, &QTabBar::currentChanged, this, &MainWindow::showSecondBarWidget);
_firstBar->setCurrentIndex(1);
添加空标签来解决。
一些示例代码:
void MainWindow::showFirstBarWidget(int index)
{
if(index == 0)
return;
_secondBar->setCurrentIndex(0);
switch(index) {
// Here code show/hide your QWidget by index
}
}
void MainWindow::showSecondBarWidget(int index)
{
if(index == 0)
return;
_firstBar->setCurrentIndex(0);
switch(index) {
// Here code show/hide your QWidget by index
}
}
这里是插槽:
// create threads and send structs to recursively sort
pthread_t thread1;
if (pthread_create(&thread1, NULL, merge_sort, &t_arg1) != 0 || t_arg->n_threads == MAX_THREADS) {
merge_sort(&t_arg1);
} else {
no. of threads++
}
merge_sort(&t_arg2);
pthread_join(thread1, NULL);
no. of threads--