小编Sib*_*ang的帖子

如何自动调整qt小部件的大小?

QT版本:4.5.2操作系统:ubuntu 8.04

我在自动调整大小小部件方面遇到了麻烦,这是一个例子:

alt text http://img15.imageshack.us/img15/3479/autoresize.png

如图所示,这里有两个小部件,一个是"StrWidget"(图1中的上部小部件),它有5个QLabel用于显示字符串,另一个是"CtrlWidget",它告诉StrWidget要显示的字符串.

当我单击"发送CCC"时,StrWidget将成为图2中所示的小部件

但是当我再次单击"发送A"时,StrWidget将成为图3中所示的小部件

有一个成员函数StrWidget :: changeString,它是StrWidget的一个插槽,并接收显示的字符串.

void
StrWidget::changeString(QString inputStr)
{
    for(int i=0;i<5;i++){
        strEntries[i]->setText(inputStr);
    }
}
Run Code Online (Sandbox Code Playgroud)

调用changeString时,StrWidget无法自动调整大小.我尝试以下两种方法:

(1)在StrWidget :: changeString中插入"adjustSize()",它可以工作,但是我需要单击一个按钮两次才能调整大小.我不知道为什么会这样.

(2)插入"hide(); show();" 在StrWidget :: changeString中,它可以工作但是当我点击按钮时StrWidget会刷新.

任何人对此都有所了解?谢谢〜


以下是该示例的源代码

主要:

#include "StrWidget.h"
#include "CtrlWidget.h"
#include <QApplication>

int main(int argc,char *argv[])
{
    QApplication app(argc,argv);
    StrWidget *strWidget=new StrWidget(0);
    CtrlWidget *ctrlWidget=new CtrlWidget(0);
    strWidget->show();
    ctrlWidget->show();
    QObject::connect(ctrlWidget,SIGNAL(sendString(QString)),strWidget,SLOT(changeString(QString)));
    int ref=app.exec();
    strWidget->deleteLater();
    ctrlWidget->deleteLater();
    return ref;
}
Run Code Online (Sandbox Code Playgroud)

StrWidget.h

#include <QWidget>
#include <QString>
#include <QLabel>

#ifndef _StrWidget_H_
#define _StrWidget_H_

class StrWidget:public QWidget
{
    Q_OBJECT
    public:
        StrWidget(QWidget …
Run Code Online (Sandbox Code Playgroud)

qt autoresize

4
推荐指数
1
解决办法
2万
查看次数

ruby 动态添加类变量

例子:

class Base
  @@var = "base"

  def self.assign_var(var)
    @@var = var
  end

  def self.show_var
    @@var
  end

  def initialize
    p @@var
  end

end

class A < Base
  assign_var("a")
end

class B < Base
  assign_var("b")
end

class C < Base
  assign_var("c")
end

p A.show_var # "c"
p B.show_var # "c"
p C.show_var # "c"
a = A.new # "c"
b = B.new # "c"
c = C.new # "c"
Run Code Online (Sandbox Code Playgroud)

如何让他们表现出自己在班级中分配的价值?像这样:

p A.show_var # "a"
p B.show_var # "b"
p C.show_var # "c" …
Run Code Online (Sandbox Code Playgroud)

ruby class-variables

2
推荐指数
1
解决办法
3510
查看次数

标签 统计

autoresize ×1

class-variables ×1

qt ×1

ruby ×1