對于為什么QChartView放在QTabWidget的內部會展開,我有點迷茫。
這是一張當QChartView沒有展開(因為它被隱藏了)時的應用圖片。
黑色部分的圖片被隱藏起來。
該應用程式的黑色部分是QOpenGLWidget。
當我點擊圖表視圖時,它將逐漸增大,直到QOpenGLWidget被隱藏。
當QChartView只是在QVBoxLayout與QOpenGLWidget中,那么這個效果就不會發生。只有當我在QTabWidget內添加QChartView時才會發生這種情況。我正試圖找出如何讓QChartView不擴展,并以其他部件的方式調整大小(例如本例中的QTextEdit部件)。
下面是代碼,它被寫成一個最小的例子來再現這個效果。
#include <QApplication>/span>
#include <QChart>
#include <QChartView>/span>
#include <QMainWindow>
#include <QOpenGLWidget>/span>
#include <QTabWidget>/span>
#include <QTextEdit>/span>
#include <QVBoxLayout>/span>
int
main(int argc, char** argv)
{
QApplication app(argc, argv)。
//主視窗
QMainWindow main_window;
main_window.resize(1280, 720) 。
main_window.show()。
//中央小工具
QWidget central_widget(& main_window)。
main_window.setCentralWidget(¢ral_widget)。
QVBoxLayout layout(& central_widget)。
central_widget.setLayout(&layout)。
//OpenGL Widget。
QOpenGLWidget gl_widget(¢ral_widget)。
gl_widget.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)。
layout.addWidget(&gl_widget)。
// Tab Widget.
QTabWidget tab_widget(&Central_widget)。
layout.addWidget(&tab_widget)。
// Log
QTextEdit text_edit(&tab_widget)。
text_edit.setReadOnly(true)。
tab_widget.addTab(&text_edit, "Log")。
//圖表視圖。
QtCharts::QChartView chart_view(& tab_widget)。
tab_widget.addTab(&chart_view, "Chart") 。
return app.exec()。
uj5u.com熱心網友回復:
這個問題是由于QChartView擁有與QOpenGLWidget相對應的擴展尺寸策略,所以當它變得可見時,它就會擴展,隱藏其他的widget。解決辦法是設定一個與布局中的每個部件相關的拉伸因子:
layout.addWidget(&gl_widget, 1) 。
layout.addWidget(&tab_widget, 1) 。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/327637.html
標籤:
上一篇:正確呈現指向外部htmljavadoc檔案的javadoc方法鏈接,這些鏈接使用破折號而不是括號和逗號。
下一篇:NodeJS中的阻斷與非阻斷


