请教Qt布局问题:无法修改现有程序,什么原因

tfssm 2012-09-24 04:18:38
我有一个Qt源代码,想修改界面。我在qt designer下拖动控件,设置layout,都没有用处,界面依然如故。请教一下大家这是怎么回事?
...全文
450 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
tfssm 2012-09-28
  • 打赏
  • 举报
回复
把paintEvent(QPaintEvent *)注释掉也不起作用 布局还是无法实现 奇怪了
tfssm 2012-09-27
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 的回复:]
额。。这样啊。你在desinger里面。。
最外面的widget的上点右键。。。
最下面有个LayOut ..LayOut in Grid。。试试看有效果没
[/Quote]
这个我已经试过了 问题应该是在
void MainWindow::paintEvent(QPaintEvent *)
{
QPainter paint(this);
paint.setBrush(QBrush(Qt::black));
paint.drawRect(ui->label_display->x()-5,ui->label_display->y()+20,
ui->label_display->width()+10,ui->label_display->height()+1);
}
就是不知道怎么解决
我程序是显示视频的 这个函数在程序里是起什么作用的 应该怎么怎么修改啊
  • 打赏
  • 举报
回复
额。。这样啊。你在desinger里面。。
最外面的widget的上点右键。。。
最下面有个LayOut ..LayOut in Grid。。试试看有效果没
tfssm 2012-09-27
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 的回复:]
这句话是绘制一个矩形,
位置是以label_display的位置来算的
x:ui->label_display->x()-5
y:ui->label_display->y()+20
width:ui->label_display->width()+10
height:ui->label_display->height()+1

你改一下代码中的位置,看看界面显示是否有变化。
然后再……
[/Quote]
它和界面是什么关系 有了它有什么好处
tfssm 2012-09-27
  • 打赏
  • 举报
回复
void MainWindow::paintEvent(QPaintEvent *)
{
QPainter paint(this);
paint.setBrush(QBrush(Qt::black));
paint.drawRect(ui->label_display->x()-5,ui->label_display->y()+20,
ui->label_display->width()+10,ui->label_display->height()+1);
}
能否讲讲这个函数是做什么的啊 多谢了
polly_polly 2012-09-27
  • 打赏
  • 举报
回复
这句话是绘制一个矩形,
位置是以label_display的位置来算的
x:ui->label_display->x()-5
y:ui->label_display->y()+20
width:ui->label_display->width()+10
height:ui->label_display->height()+1

你改一下代码中的位置,看看界面显示是否有变化。
然后再好好读懂代码
tfssm 2012-09-27
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]
没事,可以注释掉。你可以看看效果变了没。
你再添加点东西。看看能显示么?。。
不是很明白你的问题呢。 你是添加了新的控件显示不出来么?
[/Quote]
我设置了layout,想实现控件大小随窗口大小变化而变化
  • 打赏
  • 举报
回复
没事,可以注释掉。你可以看看效果变了没。
你再添加点东西。看看能显示么?。。
不是很明白你的问题呢。 你是添加了新的控件显示不出来么?
tfssm 2012-09-27
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]
paint.drawRect(ui->label_display->x()-5,ui->label_display->y()+20,
ui->label_display->width()+10,ui->label_display->height()+1);

你这个是通过代码自绘的啊,指定了相关控件的位置了
[/Quote]
能否说的更详细一点 这块的确不明白 它的作用是什么 可以注释掉吗
polly_polly 2012-09-27
  • 打赏
  • 举报
回复
paint.drawRect(ui->label_display->x()-5,ui->label_display->y()+20,
ui->label_display->width()+10,ui->label_display->height()+1);

你这个是通过代码自绘的啊,指定了相关控件的位置了
  • 打赏
  • 举报
回复
还有。。designer里面 添加控件。。记得ctrl s 保存哈。。。

  • 打赏
  • 举报
回复
呵。你把debug 或者 release文件夹里的.o都删除。。再编译。。不会这么诡异的哈。
tfssm 2012-09-27
  • 打赏
  • 举报
回复
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

init_video();


}
void MainWindow::init_video()
{
timer = new QTimer;
immtime = new QTimer;
timer2 = new QTimer;

year = 2012;
date = 7;
day = 5;
hour = 8;
minute = 40;
second = 0;

displaytime();

video4l_opendev(&vdevice,"/dev/video0");

video4l_getwin(&vdevice);
video4l_getpic(&vdevice);
vdevice.window.width = 480;
vdevice.window.height = 320;
video4l_setwin(&vdevice);
video4l_setpic(&vdevice);

vdevice.mmap.width = 480;
vdevice.mmap.height = 320;
vdevice.mmap.format = vdevice.picture.palette;
vdevice.frame = 0;
vdevice.framestat[0] = 0;
vdevice.framestat[1] = 0;

ui->horizontalSlider_brightness->setRange(0,65535);
ui->horizontalSlider_brightness->setValue(47802);
ui->horizontalSlider_contrast->setRange(0,65535);
ui->horizontalSlider_contrast->setValue(38911);

connect(ui->horizontalSlider_brightness,SIGNAL(valueChanged(int)),this,SLOT(change_brightness(int)));
connect(ui->horizontalSlider_contrast,SIGNAL(valueChanged(int)),this,SLOT(change_contrast(int)));
}

void MainWindow::paintEvent(QPaintEvent *)
{
QPainter paint(this);
paint.setBrush(QBrush(Qt::black));
paint.drawRect(ui->label_display->x()-5,ui->label_display->y()+20,
ui->label_display->width()+10,ui->label_display->height()+1);
}
没有setstyle 是不是和paintEvent有关?
polly_polly 2012-09-27
  • 打赏
  • 举报
回复
再仔细看看你界面的实现代码,能把你界面的实现代码发上来看看么,
或者是不是设置了某种样式了,setstyle
tfssm 2012-09-27
  • 打赏
  • 举报
回复
我把原来的执行文件夹都删了 重新编译改过的程序 界面还是没变 什么原因啊
tfssm 2012-09-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
你修改完界面,然后再打开是恢复到原来还是你修改的,若恢复到原来的,那可能是只读的了,改下属性;
若是你的,那么清理下工程,删除掉可执行程序及中间文件试下
[/Quote]
不是只读的。.ui文件生成的头文件是需要删除的吗?源码里有.cpp文件.h文件.pro文件应该如何清理?
feilinhe 2012-09-24
  • 打赏
  • 举报
回复
你修改完界面,然后再打开是恢复到原来还是你修改的,若恢复到原来的,那可能是只读的了,改下属性;
若是你的,那么清理下工程,删除掉可执行程序及中间文件试下
tfssm 2012-09-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
把原来程序生成的所有文件都删了,特别是exe文件。然后重新运行。
[/Quote]
linux qt creator环境,只有源码,工程文件,没有exe
许威威 2012-09-24
  • 打赏
  • 举报
回复
把原来程序生成的所有文件都删了,特别是exe文件。然后重新运行。
tfssm 2012-09-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
你看一下界面实现代码,是不是通过代码设置的布局。
[/Quote]
不是通过代码设置的布局,没有相关代码
加载更多回复(1)

16,229

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧