我有一个像这样的最小例子:
#include <iostream>
using namespace std;
long double fact(int);
int main()
{
long double a;
long double sum = 0;
cout << "Enter value of x " << endl;
cin >> a;
for (long c = 2; c <= 12; c++)
{
if (c % 2 == 0)
{
sum = sum + (pow(a, c) / fact(c));
if (sum < 0)
{
sum=sum*-1;
}
}
else
continue;
}
cout << "The answer is " << 1 + sum << endl;
system("pause");
return 0;
}
long double fact(int x)
{
int n = 1, fact;
for (n; n <= x; n++)
{
if (n == 1)
{
fact = 1;
}
else
{
fact = fact * n;
}
}
return fact;
}
从上图中可以看出,除mWidget = new QWidget;
vLayout = new QVBoxLayout;
mLabel = new QLabel;
mLabel->setText("Text");
mLabel->setAlignment(Qt::AlignCenter);
mLabel->setStyleSheet("QLabel { border: 2px solid red; }");
this->setCentralWidget(mWidget);
mWidget->setLayout(vLayout);
vLayout->addWidget(mLabel);
外,红色边框外还有一些白色边框。我想要做的是让中央小部件填充整个主窗口,因此红色边框外没有白色边框。也许以另一种方式说是建立一个无边框窗口(不知道无边界窗口是否是我正在寻找的)。我搜索了如何制作无边框窗口,我尝试了central widget
,但这不是我想要的。我现在很困惑如何实现这一目标?我应该研究的主题setWindowFlags(Qt::FramelessWindowHint)
是什么?如果是的话,这是否意味着我应该调用一些windows api来使其工作?或者我应该用其他一些Qt方法做到这一点?
希望有人可以给我一个方法或给我一些提示。感谢。
答案 0 :(得分:1)
为什么使用QMainWindow
?似乎人们在不考虑它的用途的情况下使用该类。如果您有工具栏,状态栏或停靠子窗口,那么只会想要使用QMainWindow
。否则它毫无意义。你想要的是“中央小部件”是唯一的小部件,而不是嵌入在主窗口中。如果您是在.ui
文件中设计的,则必须手动编辑它才能将课程更改为QWidget
,并完全删除介入的centralWidget
。{/ p>
答案 1 :(得分:0)
根据你的问题QMainwindow框架几何和QLable几何应该调整。所以你可以使用下面这样的线代码。
setGeometry(0,0,320,280);
ui->label->setGeometry(0,0,320,245);