乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      QT程序初始化時(shí)QDockWidget大小的調(diào)整方法

       herowuking 2015-10-25

      在QT中對于QDockWidget的resize()方法是無效的,因?yàn)镼DockWidget的大小是由其中包含的控件決定的。在manual中這樣說:

      A QDockWidget acts as a wrapper for its child widget, set with setWidget(). Custom size hints, minimum and maximum sizes and size policies should beimplemented in the child widget. QDockWidget will respect them, adjusting its own constraints to include the frame and title.Size constraints should not be set on the QDockWidget itself, because they change depending on wether it is docked; a docked QDockWidget has no frame and a smaller title bar.

      因此在程序初始化時(shí)不能簡單地使用resize()等方法調(diào)整QDockWidget大小。

      使用QMainWindow的程序在程序初始化時(shí)調(diào)整QDockWidget為上次程序記錄下來的大小的方法:

      //MainWindow中讀取上次QDockWidget大小,在MainWindow的構(gòu)造函數(shù)中所有控件初始化完成后調(diào)用

      voidMainWindow::ReadSettings()

      {
          QCoreApplication::setOrganizationName("GLZN");
          QCoreApplication::setOrganizationDomain("glzn.com");
          QCoreApplication::setApplicationName("IEDClient");
          QSettings setting;
          setting.beginGroup(QString::fromUtf8("Catalogue View"));
          QSize size = setting.value(QString::fromUtf8("lastRuntimeSize"),QSize(500,500)).toSize();
          setCatalogueViewSize(size);
          setting.endGroup();
      }

      //MainWindow中記錄程序結(jié)束時(shí)QDockWidget的大小信息,在MainWindow的onCloseEvent()中調(diào)用。

      voidMainWindow::WriteSettings()

      {
          QSettings setting;
          setting.beginGroup(QString::fromUtf8("Catalogue View"));
          QSize size = ui->dockWidget_Catalogue->size();
          setting.setValue(QString::fromUtf8("lastRuntimeSize"),size);
          //記錄下QDockWidget的原先的最大尺寸與最小尺寸
          setting.setValue(QString::fromUtf8("oldMaxSize"),QSize(16777215,16777215));
          setting.setValue(QString::fromUtf8("oldMinSize"),QSize(1,1));
          setting.endGroup();
      }

      //ReadSettings中用于調(diào)整QDockWidget的函數(shù)

      voidMainWindow::setCatalogueViewSize(QSizesize)

      {
          QDockWidget* dock = ui->dockWidget_Catalogue;
          if (size.width()>= 0)
          {
              int nWidth = dock->width();
              if (nWidth <size.width())
                  dock->setMinimumWidth(size.width());
              else
                  dock->setMaximumWidth(size.width());
          }
          if (size.height()>= 0)
          {
              int nHeight = dock->height();
              if (nHeight <size.height())
                  dock->setMinimumHeight(size.height());
              else
                  dock->setMaximumHeight(size.height());
          }
          //如果只是設(shè)定最小寬度等信息會(huì)造成QDockWidget調(diào)整大小出現(xiàn)問題
          QTimer::singleShot(0,this,SLOT(onRestoreCatalogueView()));
          //需要在構(gòu)造函數(shù)完成之后的事件循環(huán)中重新調(diào)整最小寬度等信息
          return;
      }

      //MainWindow中響應(yīng)重新設(shè)置最小寬度等信息。

      voidMainWindow::onRestoreCatalogueView()

      {
          QSettings setting;
          QSize oldMaxSize = setting.value(QString::fromUtf8("oldMaxSize"),QSize(16777215,16777215)).toSize();
          QSize oldMinSize = setting.value(QString::fromUtf8("oldMinSize"),QSize(1,1)).toSize();
          ui->dockWidget_Catalogue->setMaximumSize(oldMaxSize);
          ui->dockWidget_Catalogue->setMinimumSize(oldMinSize);
      }

        本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多