精华内容
下载资源
问答
  • 基于Qt的多窗口设计-窗体切换的实现 窗体类的关系 在布局管理部分,我们已经说过将主界面两个子系统分别封装成三个不同的类。首先我们讨论每个类中应该封装什么,其次再讨论这三个类之间的具体关系。 ...

    基于Qt的多窗口设计-窗体切换的实现

    窗体类的关系

    在布局管理部分,我们已经说过将主界面和两个子系统分别封装成三个不同的类。首先我们讨论每个类中应该封装什么,其次再讨论这三个类之间的具体关系。

    通过Qt Dsigner设计好界面后会在工程文件中对应一个.ui的文件;编译器会将该文件转换成能被C++所识别的.h文件。比如configUI.ui文件就对应一个ui_configUI.h文件,该头文件中包含了类Ui::configUI的定义。这个类完全与我们所设计的用户界面等价,也就是说它包含对主界面中各个部件的定义、该界面的布局以及初始化窗体的setupUi()等。

    但是应该注意的是,该类仅仅是对我们设计的界面的一种等价转化。我们对该界面的实际操作(比如对各种槽以及信号的定义)并不包含在该类中。为了完成配置系统的具体功能,我们会创建一个新类configUI,并让这个新类继承Ui::configUI。通常在configUI类中会有一个Ui::configUI类的成员变量ui,因此可以通过ui直接获取界面中的各个部件。

    注意,由于界面所对应的类configUI被定义在UI这个名字空间中,因此两个同名的类并不会发生名字冲突。这两个类的关系可以通过下面的代码进一步理解:

    01 //将界面对应的configUI类定义在Ui名字空间中;
    02 namespace Ui {
    03     class configUI;
    04 }
    05  
    06 class configUI : public QWidget
    07 {
    08     Q_OBJECT
    09  
    10 public:
    11     explicit configUI(QWidget *parent = 0);
    12     ~configUI();
    13 //将 Ui::configUI的对象作为configUI的成员变量;
    14 private:
    15     Ui::configUI *ui;
    16  
    17 private slots:
    18 //在此定义槽函数;
    19 };

    在configUI类中,还可以根据需要包含一些成员函数、信号和槽函数等。其他两个界面对应的类也有类似的封装关系,不再赘述。

    在布局管理中,通过点击主界面上的按钮就可以切换到相应的窗体。由此引发出我们对这几个窗体类之间关系的思考。具体的做法是,我们可以将两个子系统对应类的对象作为主界面类的成员变量,比如:

    01 namespace Ui {
    02     class frontPage;
    03 }
    04  
    05 class frontPage : public QWidget
    06 {
    07     Q_OBJECT
    08  
    09 public:
    10     explicit frontPage(QWidget *parent = 0);
    11     ~frontPage();
    12  
    13 private:
    14     Ui::frontPage *ui;
    15     configUI *configWidget;
    16     logUI *logWidget;
    17  
    18 signals:
    19     //在此定义信号;
    20  
    21 private slots:
    22    //在此定义槽函数;
    23 };

    那么在切换各个窗体时,就可以方便的通过show()和hide()近来完成。至此,我们已经完成了界面的设计和类的定义,下面要做的就是实现具体窗口的跳转工作。

    信号和槽函数的设计

    由上文可得知,我们要实现的功能即通过点击每个按钮就可以跳转到相应的窗口。所以三个窗体对应的按钮就对应三个槽函数,触发这几个槽函数的信号即为clicked()。在类frontPage中对上述三个槽函数的声明如下:

    1 signals:
    2     void goToWidget(int);
    3 private slots:
    4     void on_logSysBtn_clicked();
    5     void on_frontPageBtn_clicked();
    6     void on_configSysBtn_clicked();
    7     void on_quitBtn_clicked();
    8     void runningWidget(int);
    9     void on_quitBtn_clicked();

    除了三个窗口按钮对应的槽函数外,还包含其他函数的声明,我们在稍候会解释。按照以往的做法,我们声明了按钮对应的槽函数后,就应该依次去实现这些函数以便实现窗体间的跳转。不过,由于本程序中窗体跳转之间有一定的规律,所以将采用下面的方法:

    01 void frontPage::on_frontPageBtn_clicked()
    02 {
    03     emit goToWidget(0);
    04 }
    05  
    06 void frontPage::on_configSysBtn_clicked()
    07 {
    08     emit goToWidget(1);
    09 }
    10  
    11 void frontPage::on_logSysBtn_clicked()
    12 {
    13     emit goToWidget(2);
    14 }

    也就是说,在每个按钮对应的槽函数中再次发送goToWidget(int)信号,不同按钮将传递不同的整数。在这里我们使用emit关键字显示的发送信号,这和平时我们在Qt Designer中所使用的关联方发不同,但是本质是相同的。由于这个信号是我们自己定义的,并且信号本身就是一个函数,因此需要在frontPage类中对这个信号进行声明,具体可参见上面的示例代码。

    我们将此信号和槽函数runningWidget(int)关联。也就是说点击不同窗体对应的按钮都会执行runningWidget(int)槽函数。只不过在该函数内部则会根据所传递的整形参数执行不同的程序段。runningWidget函数的示例代码如下:

    01 void frontPage::runningWidget(int widgetNum)
    02 {
    03     switch (widgetNum) {
    04     case 0:
    05         ui->introTextBrowser->show();
    06         configWidget->hide();
    07         logWidget->hide();
    08         break;
    09     case 1:
    10         ui->introTextBrowser->hide();
    11         configWidget->show();
    12         logWidget->hide();
    13         break;
    14     case 2:
    15         ui->introTextBrowser->hide();
    16         configWidget->hide();
    17         logWidget->show();
    18         break;
    19     }
    20 }

    从上面的代码中可以看出,通过传递不同的整形参数就可以显示三个窗体中的某一个,并同时隐藏另外两个窗体。通过上面的方法,这样就可以实现多窗体之间的切换了。另外,退出按钮的槽函数的实现基本方法即为直接调用exit函数。

    至此,一个基本的多窗体程序就设计完成了。

    展开全文
  • 使用 TableLayoutPanel 控件设置窗体布局 在 Visual Studio IDE 左侧,找到“工具箱”选项卡。 选择“工具箱”选项卡,随即将显示工具箱。(或者,在菜单栏上,依次选择“视图”、“工具箱”。) 选择...

    使用 TableLayoutPanel 控件设置窗体布局

      1. 在 Visual Studio IDE 左侧,找到“工具箱”选项卡。 选择“工具箱”选项卡,随即将显示工具箱。(或者,在菜单栏上,依次选择“视图”、“工具箱”。)

      2. 选择“容器”组旁边的小三角形符号以打开该组,如下图所示。

        容器组
        “容器”组

      3. 可以向窗体中添加类似按钮、复选框和标签这样的控件。 在工具箱中双击 TableLayoutPanel 控件。(您也可将控件从工具箱拖动到窗体上。)当执行此操作时,IDE 会将 TableLayoutPanel 控件添加到窗体中,如下图中所示。

        TableLayoutPanel 控件
        TableLayoutPanel 控件

        System_CAPS_ICON_note.jpg 说明

        添加 TableLayoutPanel 之后,如果窗体中出现标题为“TableLayoutPanel 任务”的窗口,请选择窗体内的任何位置以关闭此窗口。 在本教程后面部分,您将学习到有关此窗口的更多内容。

        请注意当选择“工具箱”选项卡时工具箱是如何展开以覆盖窗体的,以及当选择工具箱外部的任何位置后它是如何关闭的。 这就是 IDE 自动隐藏功能。 通过选择窗口右上角的图钉图标在自动隐藏和就地锁定之间切换,您可为任何窗口打开或关闭工具箱。 图钉图标如下所示。

        “图钉”图标
        图钉图标

      4. 通过选择“TableLayoutPanel”来确保选定它。 可以通过查看“属性”窗口顶部的下拉列表来验证选定哪个控件,如下图中所示。

        显示 TableLayoutPanel 控件的“属性”窗口
        显示 TableLayoutPanel 控件的“属性”窗口

      5. 在“属性”窗口的工具栏上选择“按字母顺序”按钮。 这会导致“属性”窗口中的属性列表按字母顺序显示,这样更易于查找本教程中的属性。

      6. 控件选择器是“属性”窗口顶部的下拉列表。 在此示例中,它显示选定了名为 tableLayoutPanel1 的控件。 您可以通过在 Windows 窗体设计器中选择一个区域或者从控件选择器中进行选择来选择控件。 选择 TableLayoutPanel 之后,请查找“Dock”属性并选择“Dock”,此属性应设置为“无”。 请注意,一个下拉箭头将出现在值旁边。 选择该箭头,然后选择“Fill”按钮(中间的大按钮),如下图所示。

        选定“填充”的“属性”窗口
        “Fill”处于选中状态的“属性”窗口

        Visual Studio 中的停靠是指 IDE 中的一个窗口附加到另一个窗口或区域的情况。 例如,“属性”窗口可以取消停靠,即在 Visual Studio 中独立地自由浮动,也可以靠近“解决方案资源管理器”停靠。

      7. 在将 TableLayoutPanel 的“Dock”属性设置为“Fill”之后,此面板将填充整个窗体。 如果再次调整窗体的大小,则 TableLayoutPanel 将保持停靠状态,并自行调整大小以适合窗体。

        System_CAPS_ICON_note.jpg 说明

        TableLayoutPanel 与 Microsoft Office Word 中的表类似:它具有行和列,并且个别单元格可以跨多个行和列。 每个单元格都可以存放一个控件(例如按钮、复选框或标签)。 TableLayoutPanel 将具有一个跨其整个顶部行的 PictureBox 控件、一个位于其左上角单元格中的CheckBox 控件和四个位于其右上角单元格中的 Button 控件。

      8. TableLayoutPanel 当前具有两个大小相等的行和两个大小相等的列。 您需要调整它们,以使顶部行和右侧列更大一些。 在 Windows 窗体设计器中选择“TableLayoutPanel”。 在右上角有一个小的黑色三角形按钮,如下所示。

        “三角形”按钮
        三角形按钮

        此按钮指示该控件具有帮助您自动设置其属性的任务。

      9. 选择三角形以显示控件的任务列表,如下图所示。

        TableLayoutPanel 任务
        TableLayoutPanel 任务

      10. 选择“编辑行和列”任务以显示“列和行样式”窗口。 选择“Column1”,确保选中“百分比”按钮并在“百分比”框中输入 15,以将此控件的大小设置为 15%。(这是将在后面的教程中使用的 NumericUpDown 控件。)选择“Column2”并将其设置为 85%。 先不要选择“确定”按钮,因为这将关闭此窗口。(但如果这样做,您可以使用任务列表重新打开它。)

        TableLayoutPanel 列和行样式
        TableLayoutPanel 列和行样式

      11. 从窗口顶部的“显示”下拉列表中选择“行”。 将“Row1”设置为 90% 并将“Row2”设置为 10%。

      12. 选择“确定”按钮。 现在,TableLayoutPanel 应具有一个大的顶部行、一个小的底部行、一个小的左侧列和一个大的右侧列。 您可在 TableLayoutPanel 中调整行和列的大小,方法是在窗体中选择 tableLayoutPanel1,然后拖动其行和列边框。

        具有已调整大小的 TableLayoutPanel 的 Form1
        调整了 TableLayoutPanel 的大小的 Form1

    转载于:https://www.cnblogs.com/jasonch123/p/8548543.html

    展开全文
  • 布局管理部分,我们已经说过将主界面两个子系统分别封装成三个不同的类。首先我们讨论每个类中应该封装什么,其次再讨论这三个类之间的具体关系。 通过Qt Dsigner设计好界面后会在工程文件中对应一个.ui的...

    窗体类的关系

    在布局管理部分,我们已经说过将主界面和两个子系统分别封装成三个不同的类。首先我们讨论每个类中应该封装什么,其次再讨论这三个类之间的具体关系。

    通过Qt Dsigner设计好界面后会在工程文件中对应一个.ui的文件;编译器会将该文件转换成能被C++所识别的.h文件。比如configUI.ui文件就对应一个ui_configUI.h文件,该头文件中包含了类Ui::configUI的定义。这个类完全与我们所设计的用户界面等价,也就是说它包含对主界面中各个部件的定义、该界面的布局以及初始化窗体的setupUi()等。

    但是应该注意的是,该类仅仅是对我们设计的界面的一种等价转化。我们对该界面的实际操作(比如对各种槽以及信号的定义)并不包含在该类中。为了完成配置系统的具体功能,我们会创建一个新类configUI,并让这个新类继承Ui::configUI。通常在configUI类中会有一个Ui::configUI类的成员变量ui,因此可以通过ui直接获取界面中的各个部件。

    注意,由于界面所对应的类configUI被定义在UI这个名字空间中,因此两个同名的类并不会发生名字冲突。这两个类的关系可以通过下面的代码进一步理解:

    1. //将界面对应的configUI类定义在Ui名字空间中;  
    2. namespace Ui {  
    3.     class configUI;  
    4. }  
    5.   
    6. class configUI : public QWidget  
    7. {  
    8.     Q_OBJECT  
    9.   
    10. public:  
    11.     explicit configUI(QWidget *parent = 0);  
    12.     ~configUI();  
    13. //将 Ui::configUI的对象作为configUI的成员变量;  
    14. private:  
    15.     Ui::configUI *ui;  
    16.   
    17. private slots:  
    18. //在此定义槽函数;  
    19. };  

    在configUI类中,还可以根据需要包含一些成员函数、信号和槽函数等。其他两个界面对应的类也有类似的封装关系,不再赘述。

    在布局管理中,通过点击主界面上的按钮就可以切换到相应的窗体。由此引发出我们对这几个窗体类之间关系的思考。具体的做法是,我们可以将两个子系统对应类的对象作为主界面类的成员变量,比如:

    1. namespace Ui {  
    2.     class frontPage;  
    3. }  
    4.   
    5. class frontPage : public QWidget  
    6. {  
    7.     Q_OBJECT  
    8.   
    9. public:  
    10.     explicit frontPage(QWidget *parent = 0);  
    11.     ~frontPage();  
    12.   
    13. private:  
    14.     Ui::frontPage *ui;  
    15.     configUI *configWidget;  
    16.     logUI *logWidget;  
    17.   
    18. signals:  
    19.     //在此定义信号;  
    20.   
    21. private slots:  
    22.    //在此定义槽函数;  
    23. };  

    那么在切换各个窗体时,就可以方便的通过show()和hide()近来完成。至此,我们已经完成了界面的设计和类的定义,下面要做的就是实现具体窗口的跳转工作。

    信号和槽函数的设计

    由上文可得知,我们要实现的功能即通过点击每个按钮就可以跳转到相应的窗口。所以三个窗体对应的按钮就对应三个槽函数,触发这几个槽函数的信号即为clicked()。在类frontPage中对上述三个槽函数的声明如下:

    1. signals:  
    2.     void goToWidget(int);  
    3. private slots:  
    4.     void on_logSysBtn_clicked();  
    5.     void on_frontPageBtn_clicked();  
    6.     void on_configSysBtn_clicked();  
    7.     void on_quitBtn_clicked();  
    8.     void runningWidget(int);  
    9.     void on_quitBtn_clicked();  

    除了三个窗口按钮对应的槽函数外,还包含其他函数的声明,我们在稍候会解释。按照以往的做法,我们声明了按钮对应的槽函数后,就应该依次去实现这些函数以便实现窗体间的跳转。不过,由于本程序中窗体跳转之间有一定的规律,所以将采用下面的方法:

    1. void frontPage::on_frontPageBtn_clicked()  
    2. {  
    3.     emit goToWidget(0);  
    4. }  
    5.   
    6. void frontPage::on_configSysBtn_clicked()  
    7. {  
    8.     emit goToWidget(1);  
    9. }  
    10.   
    11. void frontPage::on_logSysBtn_clicked()  
    12. {  
    13.     emit goToWidget(2);  
    14. }  

    也就是说,在每个按钮对应的槽函数中再次发送goToWidget(int)信号,不同按钮将传递不同的整数。在这里我们使用emit关键字显示的发送信号,这和平时我们在Qt Designer中所使用的关联方发不同,但是本质是相同的。由于这个信号是我们自己定义的,并且信号本身就是一个函数,因此需要在frontPage类中对这个信号进行声明,具体可参见上面的示例代码。

    我们将此信号和槽函数runningWidget(int)关联。也就是说点击不同窗体对应的按钮都会执行runningWidget(int)槽函数。只不过在该函数内部则会根据所传递的整形参数执行不同的程序段。runningWidget函数的示例代码如下:

    1. void frontPage::runningWidget(int widgetNum)  
    2. {  
    3.     switch (widgetNum) {  
    4.     case 0:  
    5.         ui->introTextBrowser->show();  
    6.         configWidget->hide();  
    7.         logWidget->hide();  
    8.         break;  
    9.     case 1:  
    10.         ui->introTextBrowser->hide();  
    11.         configWidget->show();  
    12.         logWidget->hide();  
    13.         break;  
    14.     case 2:  
    15.         ui->introTextBrowser->hide();  
    16.         configWidget->hide();  
    17.         logWidget->show();  
    18.         break;  
    19.     }  
    20. }  

    从上面的代码中可以看出,通过传递不同的整形参数就可以显示三个窗体中的某一个,并同时隐藏另外两个窗体。通过上面的方法,这样就可以实现多窗体之间的切换了。另外,退出按钮的槽函数的实现基本方法即为直接调用exit函数。


    注:转自http://blog.csdn.net/markely/article/details/8026008


    展开全文
  • swing窗体布局基础

    2010-05-22 16:25:00
    每个Container(如:PanelFrame)均有一个缺省的布局管理器,用户也可通过setLayout()方法指定其他的布局管理器。 布局管理器负责决定Container内所有组件的位置大小。 一、Java中包含了下列布局管理器: Flow ...

    Container中的component,通常是由布局管理器 (layout manager)来管理的。每个Container(如:Panel和Frame)均有一个缺省的布局管理器,用户也可通过setLayout()方法指定其他的布局管理器。
    布局管理器负责决定Container内所有组件的位置和大小。

    一、Java中包含了下列布局管理器:

             Flow Layout - 是Panel和Applet缺省的布局管理器
             Border Layout - 是Window和Dialog缺省的布局管理器,即也是Frame缺省的布局管理器。
             Grid Layout 
             Card Layout 
             GridBag Layout

       1、Flow Layout Manager(顺序布局管理器)

             该布局管理器对应的类为java.awt.FlowLayout。以下是一个使用Flow Layout的例子。
    import java.awt.*;
    public class ExGui {
    private Frame f;
    private Button b1;
    private Button b2;
    public static void main(String args[]) {
    ExGui guiWindow = new ExGui();
    guiWindow.go();
    }
    public void go() {

    //create a instance of the class java.awt.Frame
    f = new Frame("GUI example");

    //create a instance of flow layout manager
    //and install it in the Frame
    f.setLayout(new FlowLayout());

    // create a instance of class java.awt.Button
    b1= new Button("Press Me");

    //the button label is defined by the String argument
    //to the constructor
    b2 = new Button("Don't Press Me");

    //add component b1 to Container f
    f.add(b1);
    f.add(b2);

    //强制告诉Frame对象,对它的component再排版,
    //以尽量小的空间存放这些component
    f.pack();

    f.setVisible(true);
    }
    }
    程序运行效果

     

    總結:

             该例所使用的flow layout是按行来放置component的,每当一行放满后,就新产生一行开始放。
    与其他布局管理器不同,flow layout管理器不对其component的大小加以限制,允许component保持其自然的尺寸,即"要多大有多大"。

             Flow Layout的component的排列一般是从左到右,从上到下,类似段落中的文字行。Flow Layout通常用于安排panel中的Button和其他component。用户可通过给Flow Layout的构造方法不同的参数来调整component的位置和间距。
    FlowLayout类有三种构造方法,最复杂的有三个参数,格式如下:

    FlowLayout(int align,int hgap,int vgap);
    其中,align决定component的位置,其值有FlowLayout.LEFT, FlowLayout.CENTER, FlowLayout.RIGHT三种,缺省为FlowLayout.CENTER。 hgap和vgap分别对应水平和垂直方向的间距,缺省为5单位(unit)。

    而最常用最简单的是不带参数的构造方法:
    FlowLayout();

    下列程序使用FlowLayout布局管理器将几个Button加到Frame中。
    import java.awt.*;
    public class MyFlow {
    private Frame f;
    private Button button1,button2,button3;
    public static void main(String args[]) {
    MyFlow mflow = new MyFlow();
    mflow.go();
    }
    public void go() {
    f = new Frame("Flow Layout");
    f.setLayout(new FlowLayout());
    button1 = new Button("Ok");
    button2 = new Button("Open");
    button3 = new Button("Close");
    f.add(button1);
    f.add(button2);
    f.add(button3);
    f.setSize(100,100);
    f.setVisible(true);
    }
    }
    程序运行效果

     

       2、Border Layout Manager(边界布局管理器)

             该布局管理器对应的类为java.awt.BorderLayout。Border Layout manager提供了在Panel或Window中放置component的更复杂的方法。它包括五个区:北区(North)、南区(South)、东区(East)、西区(West)和中区(Center)。这几个区在Panel上的分布规律是"上北下南,左西右东"。

    一旦东南西北四个区被填充后,剩下的空间都留给中区。当窗口水平扩展时,北、南、中三区得到扩展,垂直扩展时,东、西、中三区得到扩展。
    Border布局管理器是Dialog和Frame的缺省布局管理器。

    例:
    import java.awt.*;
    public class ExGui2 {
    private Frame f;
    private Button bn,bs,bw,be,bc;
    public static void main(String args[]) {
    ExGui2 guiWindow2 = new ExGui2();
    guiWindow2.go();
    }
    public void go() {
    f = new Frame("Border Layout");
    bn = new Button("B1");
    bs = new Button("B2");
    be = new Button("B3");
    bw = new Button("B4");
    bc = new Button("B5");
    f.add(bn,BorderLayout.NORTH);
    f.add(bs,BorderLayout.SOUTH);
    f.add(be,BorderLayout.EAST);
    f.add(bw,BorderLayout.WEST);
    f.add(bc,BorderLayout.CENTER);
    f.setSize(200,200);
    f.setVisible(true);
    }
    }
    程序运行效果

     

    總結:

             同样,使用BorderLayout的构造方法,可设置其component的间距。如:
    BorderLayout(); //component间没有间距

    BorderLayout(int hgap,int vgap); // hgap和vgap分别对应水平和垂直方向的间距。

    对应Border布局管理器的五个区域,一般每个区域只能有一个component, 若在一个区域中加上多个component,则只有最后加上的那个是可见的。

      

       3、Grid Layout Manager(网格布局管理器)

             该布局管理器对应的类为java.awt.GridLayout。Grid布局管理器提供了放置component的灵活手段。程序员可以建立一个有多行和多列的布局管理器,然后component就可以按一定的次序(从左到右,从上到下)进行排列。

    当Grid布局管理器对应的窗口发生变化时,内部component的相对位置并不变化,只有大小发生变化。
    Grid布局管理器总是忽略component倾向的大小(prefered size),它把每个component的大小设置成相同的。

    GridLayout类有三个构造方法:
    GridLayout()
    //缺省建立一行的布局,每个component占居一列

    GridLayout(int rows, int cols)
    //建立指定行和列的布局,rows和cols对应行数和列数

    GridLayout(int rows, int cols, int hgap, int vgap)
    //建立指定行列数和间距的布局,hgap和vgap分别对应水平和垂直间距。

    例:
    import java.awt.*;
    public class GridEx {
    private Frame f;
    private Button b1,b2,b3,b4,b5,b6;
    public static void main(String args[]) {
    GridEx grid = new GridEx();
    grid.go();
    }
    public void go() {
    f = new Frame("Grid example");
    f.setLayout(new GridLayout(3,2));
    b1 = new Button("1");
    b2 = new Button("2");
    b3 = new Button("3");
    b4 = new Button("4");
    b5 = new Button("5");
    b6 = new Button("6");
    f.add(b1);
    f.add(b2);
    f.add(b3);
    f.add(b4);
    f.add(b5);
    f.add(b6);
    f.pack();
    f.setVisible(true);
    }
    }
    程序运行效果


        4、Card Layout Manager(卡片布局管理器)

             Card布局管理器把用户接口看成是一系列的卡片,某一时刻只有一张是可见的。可以使用add()方法把卡片加到Card Layout中,然后使用CardLayout类中的first()、next()等方法根据需要切换到新的卡片。有兴趣的同学可自己查看参考书。

     

     

    常用的也就這4種,其他的不怎麼實用、、、

    展开全文
  • } } 我是因为要在同一个widget里的layout里交替放置不同的chartView,就是可以根据自己的需求chartView可以在layout里随意切换。而layout只有addwidget()增加chartview,切换之前必须要把layout清空,不然一个...
  • F7 - Shift+F7
  • 使用 TableLayoutPanel 控件设置窗体布局 在 Visual Studio IDE 左侧,找到“工具箱”选项卡。 选择“工具箱”选项卡,随即将显示工具箱。(或者,在菜单栏上,依次选择“视图”、“工具箱”。) 选择...
  •  在一个程序中,如果每个模版的切换都需要开启一个新窗口,一来窗口逐渐多了会造成... 这时,可以使用卡片式布局来实现在一个窗口切换不同面板。  1:首先,往窗口拖动一个面板,作为母容器。  2:右键该面...
  • 布局管理部分,我们已经说过将主界面两个子系统分别封装成三个不同的类。首先我们讨论每个类中应该封装什么,其次再讨论这三个类之间的具体关系。 通过Qt Dsigner设计好界面后会在工程文件中对应一个.ui的文件...
  • import javax.swing.JFrame; import javax.swing.JButton; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.GridLayout;... setTitle("我的窗体"); //设置窗体的大小 setSize(3
  • 浅谈wince项目开发---窗体布局  在园子里混了这么多年,从这里得到无数却从未有过付出,倍感汗颜;今天终于申请了个博客,也想着不管咋地也要为咋们中国的软年事业做点贡献^-^,不过却是提笔无言呀,就随便写点吧...
  • QT实现多窗口切换

    万次阅读 多人点赞 2013-02-06 15:43:47
    该文章转自:...  Qt多窗口切换程序 1.ui文件中布局   2.主要程序  main.cpp #include #include "mainwindow.h" int main(int argc, char *argv[]) { QApplication
  • Spyder窗口布局调整

    千次阅读 2021-01-15 14:26:41
    Spyder窗口布局调整 默认窗口布局 Spyder已经添加了一些默认类型的窗口显示布局,默认布局有:Spyder默认、Matlab、 Rstudio、Vertical、Horizontal 设置方式:View->Window layouts->选择你喜欢的窗口风格...
  • 在过去的几周中,我浏览过的许多论坛都没有关于在“父”形式“子”形式之间切换的内容,除了一些非常复杂的“巨型”之外。 我在这里展示一个简单的解决方案。 还要注意,我对父窗体和窗体的解释与c#语言中...
  • 主要介绍了python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法,需要的朋友可以参考下
  • 利用PyQt5实现窗口切换 下面是一个小程序,利用PyQt5实现窗口切换,希望对大家有所帮助。 ```python import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QPushButton,QDialog,QLabel ...
  • 控制了窗口的大小当拖动窗口缩小的添加的空间大小时,窗口不会再缩小了,实现了formview dialog对话框的布局,还有就是点击菜单项切换界面,
  • 前言前一段时间做了一个即时通讯的项目,在项目...做到视频通话时,遇到本地视图与远程视图切换,网上搜了一篇相关的博客:https://blog.csdn.net/xuedaqian123/article/details/77878781,根据大神思路写了这个Demo...
  • Qt实战--主窗口布局

    千次阅读 2018-06-29 12:07:08
    QMainWindow 构造函数 initUI ...MainWindow类我们一般选择直接继承自QMainWindow,因为QMainWindow已经向我们提供了一个常用的应用程序主窗口布局,包括QMenuBar菜单栏、QToolBar工具栏、QStatusB...
  • 在C#的WinForm中,用TabControl整合了多个窗体,实现了窗体切换。这是通过选项卡进行三个窗体之间切换的Demo,有关此Demo的详细介绍,大家可以参考我的博客:...
  • 1、主窗口进行界面布局: 2、子窗口进行界面布局: 三、在form类中: 1、在form中的.h文件中: #ifndef FORM_H #define FORM_H #include <QWidget> namespace Ui { class Form; } class Form : ...
  • c# WinForm 实现登录验证 窗口,正确的登录...frmLogin 窗体布局,文本框txtUser,txtPass 2.修改Program.cs 文件 static void Main() { Application.EnableVisualStyles(); Application.SetCompatibl...
  • java swing 菜单栏怎么实现窗体切换

    千次阅读 多人点赞 2019-01-26 15:33:25
    操作:点击绞车房窗体里面菜单栏中平硐位移-卷扬室,就会跳转到平硐窗体,之前的绞车房窗体就销毁了,看不见了!   绞车房窗体 平硐窗体    实现代码如下 公共部分代码 package cn.com.swing; ...
  • 05 用xml文件可视化设计窗口布局

    千次阅读 2017-09-24 21:49:30
    前面一直用代码来设计窗口布局,每次修改后,只有程序执行时才可看到设计的结果,而且当窗口的控件较多时,写代码的方式较为麻烦了。 所以Android里还提供了用xml文件,用可视化的方式来设计窗口布局.首先还是先...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,944
精华内容 2,377
关键字:

代码窗口和窗体布局窗口切换