精华内容
下载资源
问答
  • QT QTabWidget

    2021-03-05 10:20:11
    QTabWidget 使用1.1 ui界面添加tabWidget & 想展示的Widget1.2 TabWidget 动态添加tab1.3 tabWidget 动态删除tab1.4 TabWidget 获取所有tab的界面值2.1 TestWidget 展示2.2 TestWidget获取值3 以上所用 最后的...


    在这里插入图片描述
    最后的结果:
    在这里插入图片描述

    1.1 ui界面添加tabWidget & 想展示的Widget

    在这里插入图片描述

    1.2 TabWidget 动态添加tab

    /**
     * @brief MainWindow::on_pushButton_insert_clicked
     * 添加
     */
    void MainWindow::on_pushButton_insert_clicked()
    {
        TW = new TestWidget();
        int n = ui->tabWidget->count();     //当前tab页数
        TW->num = n+1;                      //添加的页码
        ui->tabWidget->addTab(TW,"");       //添加
        ui->tabWidget->setCurrentIndex(n);  //跳转至新添加的页码
    }
    

    1.3 tabWidget 动态删除tab

    /**
     * @brief MainWindow::on_pushButton_delete_clicked
     * 删除
     */
    void MainWindow::on_pushButton_delete_clicked()
    {
        int i,count;
        i = ui->tabWidget->currentIndex();  //当前所在页
        count = ui->tabWidget->count();     //总页数
        if(count > 1)                       //如果总页数大于1
        {
            ui->tabWidget->removeTab(i);    //就删除当前页
        }
    }
    

    1.4 TabWidget 获取所有tab的界面值

    /**
     * @brief MainWindow::on_pushButton_getValue_clicked
     * 获取数据
     */
    void MainWindow::on_pushButton_getValue_clicked()
    {
        QMap<int ,QStringList> tabMap;          //map集合
        int count;                              //tab总页数
        QWidget *wd;                            //每个界面
        TW = new TestWidget();                  //被展示的界面
        count = ui->tabWidget->count();         //获取总页数
        for(int i = 0;i<count;i++)              //循环
        {
            wd = ui->tabWidget->widget(i);      //依次返回各个下标页
            TW = (TestWidget*)wd;               //转换页面为我们的testWidget
            tabMap.insert(i,TW->strList);       //获取界面的元素 存储在map集合内
        }
        for(int i = 0;i<tabMap.size();i++)      //遍历打印
        {
            qDebug() << tabMap.value(i);
        }
    }
    

    2.1 TestWidget 展示

    /**
     * @brief TestWidget::showEvent
     * @param event
     * 展示事件
     */
    void TestWidget::showEvent(QShowEvent *event)
    {
    	//这个num变量,在上面的addTab的时候有赋值
        ui->lineEdit_num->setText(QString::number(num));    //展示编号
    }
    

    2.2 TestWidget获取值

    /**
     * @brief TestWidget::getValues
     * 获取界面值
     */
    void TestWidget::getValues()
    {
        int r,c;
        QString value;
        strList.clear();        //全局变量 QStringList strList; 清除后 重新赋值
    
        //lineEdit获取值
        value = ui->lineEdit_name->text();                  //获取值
        mainWin->ui->tabWidget->setTabText(num-1,value);    //修改tabWidget的页码名称
    
        strList.append(value);
        value = ui->lineEdit_2->text();
        strList.append(value);
        //comboBox 获取值
        value = ui->comboBox->currentText();
        strList.append(value);
        //tableWidget获取值
        r = ui->tableWidget->rowCount();        //获取行数
        c = ui->tableWidget->columnCount();     //获取列数
    
        for(int i = 0;i<r;i++)
        {
            for(int j = 0;j<c;j++)
            {
                value = ui->tableWidget->item(i,j)->text();
                strList.append(value);
            }
        }
    }
    
    /**
     * @brief TestWidget::on_pushButton_ok_clicked
     * ok  获取界面数据
     */
    void TestWidget::on_pushButton_ok_clicked()
    {
        getValues();
    }
    

    3. 以上所用

    QTabWidget
    动态添加、删除 tab 、赋值、获取值。

    4.移动tab

    在这里插入图片描述

    ui->tabWidget->tabBar()->moveTab(fromIndex,endIndex);    //从from下标移动至end下标
    

    以上是一步一步的移动 index = currentIndex;

    展开全文
  • qt QTabWidget

    2016-08-26 19:18:30
    [cpp] view plain copy  print?  //mydialog.h  #ifndef MYDIALOG_H  #define MYDIALOG_H  ...class QTabWidget;  class MyDialog : public QDialog  {   Q_OBJECT  public:
    1.  //mydialog.h  
    2. #ifndef MYDIALOG_H  
    3. #define MYDIALOG_H  
    4. #include <QDialog>  
    5. class QTabWidget;  
    6. class MyDialog : public QDialog  
    7. {  
    8.   Q_OBJECT  
    9. public:  
    10.   explicit MyDialog(QWidget *parent = 0);  
    11. signals:  
    12. public slots:  
    13. private:  
    14.   QTabWidget *tabWidget;  
    15. };  
    16. #endif // MYDIALOG_H  


     

    1. //mydialog.cpp  
    2. #include "mydialog.h"  
    3. #include <QtGui/QTabWidget>  
    4. #include <QtGui/QHBoxLayout>  
    5. #include <QtGui/QVBoxLayout>  
    6. #include <QtGui/QLabel>  
    7. #include <QtGui/QLineEdit>  
    8. #include <QtGui/QPushButton>  
    9. #include <QtGui/QWidget>  
    10. #include <QtGui/QIcon>  
    11. MyDialog::MyDialog(QWidget *parent) :  
    12.   QDialog(parent)  
    13. {  
    14.   tabWidget = new QTabWidget();  
    15.   
    16.   //新建第一个页面的部件  
    17.   QWidget *widget = new QWidget();  
    18.   QLineEdit *lineEdit = new QLineEdit();  
    19.   QPushButton *pushButton = new QPushButton("Test");  
    20.   QVBoxLayout *vLayout = new QVBoxLayout();  
    21.   vLayout->addWidget(lineEdit);  
    22.   vLayout->addWidget(pushButton);  
    23.   widget->setLayout(vLayout);  
    24.   
    25.   
    26.   //新建第二个页面的部件  
    27.   QLabel *label = new QLabel("Hello Qt");  
    28.   
    29.   //新建第三个页面的部件  
    30.   QPushButton *pushButton3 = new QPushButton("Click Me");  
    31.   
    32.   //向QTabWidget中添加第一个页面  
    33.   QIcon icon1(":/new/icon/images/1.ico");  
    34.   tabWidget->addTab(widget, icon1, "Tab1");  
    35.   
    36.   //向QTabWidget中添加第二个页面  
    37.   QIcon icon2(":/new/icon/images/2.ico");  
    38.   tabWidget->addTab(label, icon2, "Tab2");  
    39.   
    40.   //向QTabWidget中添加第三个页面  
    41.   QIcon icon3(":/new/icon/images/3.ico");  
    42.   tabWidget->addTab(pushButton3, icon3, "Tab3");  
    43.   
    44.   QHBoxLayout *layout = new QHBoxLayout();  
    45.   layout->addWidget(tabWidget);  
    46.   
    47.   this->setLayout(layout);  
    48.   this->resize(300, 100);  
    49.   this->setWindowTitle("QTabWidgetDemo");  
    50. }  


     

    1. //main.cpp  
    2. #include <QtGui/QApplication>  
    3. #include "mydialog.h"  
    4. int main(int argc, char *argv[])  
    5. {  
    6.   QApplication a(argc, argv);  
    7.   MyDialog dialog;  
    8.   dialog.show();  
    9.   return a.exec();  
    10. }  


     

    资源文件截图:

     

    程序运行截图:

    展开全文
  • Qt QTabWidget详解

    2020-11-25 11:27:53
    void setTabPosition(QTabWidget::TabPosition) //设置tab的形状 void setTabShape(QTabWidget::TabShape s) 2.例子 这里简单的添加两个tab m_tabWidget = new QTabWidget(this); ui->h.

    1.常用API

    //添加
    int addTab(QWidget *page, const QString &label)
    
    //设置tab位置
    void setTabPosition(QTabWidget::TabPosition)
    
    //设置tab的形状
    void setTabShape(QTabWidget::TabShape s)
    
    

    2.例子

    这里简单的添加两个tab

        m_tabWidget = new QTabWidget(this);
        ui->horizontalLayout->addWidget(m_tabWidget);
    
        //add page1
        QFrame *page1 = new QFrame(m_tabWidget);
        QHBoxLayout *h1 = new QHBoxLayout(page1);
    
        QLabel *labelName = new QLabel(page1);
        labelName->setText("姓名: ");
        h1->addWidget(labelName);
    
        QLineEdit *le1 = new QLineEdit(page1);
        h1->addWidget(le1);
    
        //add page2
        QFrame *page2 = new QFrame(m_tabWidget);
        QHBoxLayout *h2 = new QHBoxLayout(page2);
    
        QLabel *labelName2 = new QLabel(page2);
        labelName2->setText("性别: ");
        h2->addWidget(labelName2);
    
        QComboBox *cb2 = new QComboBox(page2);
        cb2->addItems(QStringList()<<"男"<<"女");
        h2->addWidget(cb2);
    
        m_tabWidget->addTab(page1,"姓名");
        m_tabWidget->addTab(page2,"性别");

    运行截图:

    3.右键菜单

    这里,只做了一个右键删除当前page页

        //开启右键菜单
        m_tabWidget->setContextMenuPolicy(Qt::CustomContextMenu);
    
        m_menu = new QMenu(this);
        m_actionAdd = new QAction("添加",m_menu);
        connect(m_actionAdd,&QAction::triggered,this,&Form::slotAdd);
        m_actionDel = new QAction("删除",m_menu);
        connect(m_actionDel,&QAction::triggered,this,&Form::slotDel);
        m_menu->addAction(m_actionAdd);
        m_menu->addAction(m_actionDel);
    
        connect(m_tabWidget,&QTabWidget::customContextMenuRequested,this,&Form::slotPopMenu);
    
        void Form::slotPopMenu(const QPoint &pos)
        {
            m_menu->exec(m_tabWidget->mapToGlobal(pos));
        }
    
        void Form::slotAdd()
        {
            //add page
        }
    
        void Form::slotDel()
        {
           m_tabWidget->removeTab(m_tabWidget->currentIndex());
        }
    

    3.设置风格

    以下style仅供参考

    const QString styles = "\
    QTabWidget::pane\
    {\
        border-top: 2px solid #C2C7CB;\
    }\
    QTabWidget::tab-bar\
    {\
        left: 5px;\
    }\
    QTabBar::tab\
    {\
        background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,\
                                        stop: 0 #E1E1E1, stop: 0.4 #DDDDDD,\
                                        stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3);\
        border: 2px solid #C4C4C3;\
        border-bottom-color: #C2C7CB;\
        border-top-left-radius: 4px;\
        border-top-right-radius: 4px;\
        min-width: 8ex;\
        padding: 2px;\
    }\
    QTabBar::tab:selected, QTabBar::tab:hover\
    {\
        background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,\
                                        stop: 0 #fafafa, stop: 0.4 #f4f4f4,\
                                        stop: 0.5 #e7e7e7, stop: 1.0 #fafafa);\
    }\
    QTabBar::tab:selected\
    {\
        border-color: #9B9B9B;\
        border-bottom-color: #C2C7CB;\
    }\
    QTabBar::tab:!selected\
    {\
        margin-top: 2px;\
    }";
    

     源码:https://download.csdn.net/download/wzz953200463/13188035

    展开全文
  • tabWidget = new QTabWidget(); tabWidget ->setUsesScrollButtons(true);//使QTabWidget显示滚动条 tabWidget ->setTabsClosable(true);//设置tab的关闭选项 tabWidget ->setTabsClosable(true) ...

        tabWidget = new QTabWidget();
        tabWidget ->setUsesScrollButtons(true);//使QTabWidget显示滚动条
        tabWidget ->setTabsClosable(true);//设置tab的关闭选项

     

    tabWidget ->setTabsClosable(true)

     

    tabWidget ->setTabsClosable(false)

     

     

    展开全文
  • QT Qtabwidget 编辑集合

    2019-02-08 22:02:21
    QTabWidget::pane { border: 1px; background:transparent; } QTabWidget::tab-bar { background:transparent; subcontrol-position:center; } QTabBar::tab { min-width:75px; min-height:55px; ba...
  • QT QTabWidget的使用

    千次阅读 2018-08-30 16:52:28
    QTabWidget设置setTabsClosable(true)后所有加进来的tab上都会出现关闭按钮,然后利用QTabWidget的tabCloseRequested(int)信号实现tab的关闭。 #include "mainwindow.h" #include "ui_mainwindow.h" #include ...
  • QFormLayout* layout = new QFormLayout; QLineEdit* text1 = new QLineEdit(); QLineEdit* text2 = new QLineEdit(); layout->addRow(“Name:”, text1);//往QFormLayout中添加表项 layout->...
  • QT QTabWidget stylesheet 样式表

    万次阅读 2018-06-09 17:32:20
    QTabWidget::pane /* The tab widget frame */ { top:20px; border:none; } QTabBar::tab:first /*第一个页面上面的标签tab*/ { color:#333333; background:transparent; font-family:"微软雅黑&...
  • Qt QTabWidget的简单应用

    2020-06-21 17:51:57
    创建一个简单的Tab 控件: The normal way to use QTabWidget is to do the following: Create a QTabWidget. Create a QWidget for each of the pages in the tab dialog, but do not specify parent widgets for ...
  • Qt QTabWidget修改tabBar方向

    千次阅读 2018-07-09 11:25:27
    感谢 https://blog.csdn.net/skyztttt/article/details/52448992QTabWidget默认的 Tab方向是水平的,从属性设置更改 tabPosition=west后的效果如下图最终效果图#ifndef MH1_H #define MH1_H #include &lt;...
  • qt qtabwidget tab美化

    千次阅读 2016-05-23 15:04:34
    ui->tabWidget->setStyleSheet("QTabBar::tab{background-color:rgb(255,255,255);color:rgb(0,0,0);font:10pt '新宋体'}"); ui->tabWidget->setStyleSheet("QTabBar::tab::selected{background-color:rgb(255,255
  • Qt QTabWidget拖拽tab到另一个QTabWidget

    千次阅读 2018-05-27 16:28:05
    我是按照有个例子做的,但是他做的不太好,拖拽之后只是单独的窗口,直接上代码.h#ifndef CTABWIDGET_H#define CTABWIDGET_H#...qtabwidget.h&gt;class myTabBar:public QTabBar{ Q_OBJECTpublic: myTabBar(QWid...
  • 如图想要设置1、2、3的...setAttribute(Qt::WA_StyledBackground); //标题栏红色背景,tab选中蓝色,未选中灰色 ui->tabWidget->setStyleSheet("QTabWidget#tabWidget{background-color:rgb(255,0,0);}\ .
  • setStyleSheet(QTabBar::tab{width:宽度}); 右击控件,在样式表编辑框中写入 这样就可以。
  • 思路:双击发出信号,显示创建好的...由于不想重写QTabWidget,所以主要问题是如何确定QLineEdit的位置。 mainwindow.cpp #include "mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindo...
  • 1.设置部分tab的关闭按钮隐藏,操作如下: ((QTabBar*)(ui-&gt;tabWidget-&gt;tabBar()))-&gt;setTabButton(ui-&gt;tabWidget-&...tabRealTimeData),QTabBar::RightSide,NULL);
  • 动态使用 ui界面 代码 ui界面 代码 主要是动态添加tabWidget页以及在页内动态添加QLineEdit, 最后对动态添加的QLineEdit进行赋值 #include #include #include /** * @brief ... //如果是 赋值 } } } } QT QTabWidget
  • QTabWidget addTab 将新建的控件放到一个容器中,比如 QMap<QString , Widget *> m_qmapWidget; QString 部分用来存放 tab的 文本内容,方便后面查找 widget 存放对应的窗口 删除 tab通过 1> removeTab(int...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 538
精华内容 215
关键字:

qtqtabwidget