├── 2d_3d_vision ├── README.md └── camera_calib │ ├── ppt │ └── 0.0相机标定原理.pptx │ └── src │ └── CalibRapid │ ├── CalibRapid.sln │ └── CalibRapid │ ├── CalibRapid.qrc │ ├── CalibRapid.qss │ ├── CalibRapid.vcxproj │ ├── CalibRapid.vcxproj.filters │ ├── cameracalib.cpp │ ├── cameracalib.h │ ├── cameracalib_common.h │ ├── data │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── 7.png │ ├── JSON文件说明.png │ ├── robot_pose.json │ └── single_calib.yaml │ ├── flowlayout.cpp │ ├── flowlayout.h │ ├── imageflowviewer.cpp │ ├── imageflowviewer.h │ ├── images │ ├── extrinsic.png │ ├── intrinsic.png │ ├── loading.gif │ ├── sizegrip.png │ └── stereo.png │ ├── main.cpp │ ├── mainwindow.cpp │ └── mainwindow.h ├── README.md ├── pyqt_project ├── README.md ├── basic_code │ └── set_application_icon.py ├── custom_signal_slot │ └── main.py ├── demo0001 │ └── main.py ├── demo_pkg │ ├── README.txt │ ├── setup.py │ └── src │ │ └── widget │ │ ├── __init__.py │ │ ├── a.json │ │ ├── a.py │ │ ├── a.txt │ │ ├── a.xml │ │ └── widget2 │ │ ├── __init__.py │ │ ├── a2.json │ │ ├── a2.py │ │ ├── a2.txt │ │ └── a2.xml ├── my_orange3 │ ├── README.md │ ├── orange3-addon-zcb03 │ │ ├── setup.py │ │ └── zcbpkg │ │ │ └── __init__.py │ ├── orange3-addon-zcb04 │ │ ├── setup.py │ │ └── zcbpkg │ │ │ ├── __init__.py │ │ │ ├── __pycache__ │ │ │ ├── __init__.cpython-38.pyc │ │ │ ├── lxQIntNumber.cpython-38.pyc │ │ │ └── lxQIntNumber2.cpython-38.pyc │ │ │ ├── lxQIntNumber.py │ │ │ ├── lxQIntNumber2.py │ │ │ ├── orange.ico │ │ │ └── orange.png │ ├── orange3-example-addon │ │ ├── MANIFEST.in │ │ ├── README.md │ │ ├── README.pypi │ │ ├── doc │ │ │ ├── Makefile │ │ │ ├── conf.py │ │ │ ├── index.rst │ │ │ ├── make.bat │ │ │ └── widgets │ │ │ │ ├── icons │ │ │ │ └── mywidget.png │ │ │ │ └── mywidget.md │ │ ├── orangecontrib │ │ │ ├── __init__.py │ │ │ └── example │ │ │ │ ├── __init__.py │ │ │ │ ├── tests │ │ │ │ ├── __init__.py │ │ │ │ └── test_example.py │ │ │ │ ├── tutorials │ │ │ │ ├── __init__.py │ │ │ │ └── example_tutorial.ows │ │ │ │ └── widgets │ │ │ │ ├── __init__.py │ │ │ │ ├── icons │ │ │ │ ├── category.svg │ │ │ │ └── mywidget.svg │ │ │ │ └── mywidget.py │ │ ├── screenshot.png │ │ └── setup.py │ └── use_python_entry_points.py └── my_pkg │ ├── lxcg │ ├── lxrobot │ │ ├── __init__.py │ │ └── sql │ │ │ └── __init__.py │ └── setup.py │ └── lxzcb │ ├── lxrobot │ ├── __init__.py │ └── canvas │ │ └── __init__.py │ └── setup.py ├── qmake └── 多工程管理 │ └── fooapp │ ├── README.md │ ├── fooapp.pro │ └── src │ ├── app │ ├── app.cpp │ ├── app.pro │ ├── lib.h │ └── lib2.h │ ├── lib │ ├── lib.cpp │ ├── lib.h │ └── lib.pro │ └── lib2 │ ├── lib2.cpp │ ├── lib2.h │ └── lib2.pro ├── qt_GSGU ├── README.md ├── images │ └── tree.png ├── 相关软件 │ ├── QssStylesheetEditor1.6.zip │ ├── README.txt │ └── TakeColor.exe ├── 第一章 Qt简介、相关工具安装及使用 │ ├── 00ppt │ │ ├── 1.1Qt简介.pptx │ │ ├── 1.2-1.4Qt相关开发工具安装使用.pptx │ │ └── 1.5学习路线.pptx │ ├── 01c++ │ │ ├── QtCreator │ │ │ └── demo01 │ │ │ │ ├── demo01.pro │ │ │ │ ├── demo01.pro.user │ │ │ │ └── main.cpp │ │ └── VisualStudio │ │ │ └── qt_demo │ │ │ ├── demo01 │ │ │ ├── demo.cpp │ │ │ ├── demo.h │ │ │ ├── demo.qrc │ │ │ ├── demo.ui │ │ │ ├── demo01.vcxproj │ │ │ ├── demo01.vcxproj.filters │ │ │ ├── demo01.vcxproj.user │ │ │ └── main.cpp │ │ │ └── qt_demo.sln │ └── 02python │ │ └── demo01 │ │ └── main.py └── 第二章 Widgets体系 │ ├── 00ppt │ ├── 2.1 Widgets体系概述、Qt命名空间、编程规范.pptx │ ├── 2.2 QObject之事件系统、信号和槽、对象树、计时功能.pptx │ ├── 2.3 Application相关.pptx │ ├── 2.4 QWidget-所有可视化控件的基石.pptx │ ├── 2.5 QSS-控件也爱美.pptx │ ├── 2.6 主窗口—QMainWindow相关.pptx │ ├── 2.7 用户交互与信息展示.pptx │ └── 2.9拖拽相关1.pptx │ ├── 01c++ │ ├── qt_GSGU_2_1 │ │ ├── qt_GSGU_2_1.sln │ │ └── qtnamespace │ │ │ ├── main.cpp │ │ │ ├── qtnamespace.vcxproj │ │ │ ├── qtnamespace.vcxproj.filters │ │ │ └── qtnamespace.vcxproj.user │ ├── qt_GSGU_2_2 │ │ ├── qt_GSGU_2_2.sln │ │ └── qt_event │ │ │ ├── main.cpp │ │ │ ├── mybutton.cpp │ │ │ ├── mybutton.h │ │ │ ├── mydrawboard.cpp │ │ │ ├── mydrawboard.h │ │ │ ├── mydrawboard2.cpp │ │ │ ├── mydrawboard2.h │ │ │ ├── mydrawboard3.cpp │ │ │ ├── mydrawboard3.h │ │ │ ├── qt_event.vcxproj │ │ │ ├── qt_event.vcxproj.filters │ │ │ └── qt_event.vcxproj.user │ ├── qt_GSGU_2_3 │ │ ├── qt_00_crazy_http_client │ │ │ ├── main.cpp │ │ │ ├── qt_00_crazy_http_client.vcxproj │ │ │ ├── qt_00_crazy_http_client.vcxproj.filters │ │ │ └── response.html │ │ ├── qt_01_simple_http_server │ │ │ ├── main.cpp │ │ │ ├── qt_01_simple_http_server.vcxproj │ │ │ ├── qt_01_simple_http_server.vcxproj.filters │ │ │ ├── webserver.cpp │ │ │ └── webserver.h │ │ ├── qt_02_magic_object │ │ │ ├── demo.cpp │ │ │ ├── demo.h │ │ │ ├── demo.qrc │ │ │ ├── images │ │ │ │ ├── 1.png │ │ │ │ ├── 2.png │ │ │ │ ├── 3.png │ │ │ │ ├── 4.png │ │ │ │ └── 5.png │ │ │ ├── main.cpp │ │ │ ├── qt_02_magic_object.vcxproj │ │ │ └── qt_02_magic_object.vcxproj.filters │ │ ├── qt_03_argparser_settings │ │ │ ├── demo.cpp │ │ │ ├── demo.h │ │ │ ├── demo.qrc │ │ │ ├── demo.ui │ │ │ ├── images │ │ │ │ ├── editcopy.png │ │ │ │ ├── editcut.png │ │ │ │ ├── editpaste.png │ │ │ │ ├── editredo.png │ │ │ │ ├── editundo.png │ │ │ │ ├── exportpdf.png │ │ │ │ ├── filenew.png │ │ │ │ ├── fileopen.png │ │ │ │ ├── fileprint.png │ │ │ │ ├── filesave.png │ │ │ │ ├── textbold.png │ │ │ │ ├── textcenter.png │ │ │ │ ├── textitalic.png │ │ │ │ ├── textjustify.png │ │ │ │ ├── textleft.png │ │ │ │ ├── textright.png │ │ │ │ ├── textunder.png │ │ │ │ ├── zoomin.png │ │ │ │ └── zoomout.png │ │ │ ├── main.cpp │ │ │ ├── qt_03_argparser_settings.vcxproj │ │ │ └── qt_03_argparser_settings.vcxproj.filters │ │ └── qt_GSGU_2_3.sln │ ├── qt_GSGU_2_4 │ │ ├── qt_00_qwidget_pos_size │ │ │ ├── main.cpp │ │ │ ├── qt_00_qwidget_pos_size.vcxproj │ │ │ ├── qt_00_qwidget_pos_size.vcxproj.filters │ │ │ └── qt_00_qwidget_pos_size.vcxproj.user │ │ ├── qt_01_certain_count_child_widget │ │ │ ├── main.cpp │ │ │ ├── qt_01_certain_count_child_widget.vcxproj │ │ │ ├── qt_01_certain_count_child_widget.vcxproj.filters │ │ │ └── qt_01_certain_count_child_widget.vcxproj.user │ │ ├── qt_02_min_max_size │ │ │ ├── main.cpp │ │ │ ├── qt_02_min_max_size.vcxproj │ │ │ ├── qt_02_min_max_size.vcxproj.filters │ │ │ └── qt_02_min_max_size.vcxproj.user │ │ ├── qt_03_event_handle │ │ │ ├── Resource.qrc │ │ │ ├── images │ │ │ │ └── back.png │ │ │ ├── main.cpp │ │ │ ├── qt_03_event_handle.vcxproj │ │ │ ├── qt_03_event_handle.vcxproj.filters │ │ │ └── qt_03_event_handle.vcxproj.user │ │ ├── qt_04_mouse_cursor │ │ │ ├── Resource.qrc │ │ │ ├── images │ │ │ │ └── my_cursor.png │ │ │ ├── main.cpp │ │ │ ├── qt_04_mouse_cursor.vcxproj │ │ │ ├── qt_04_mouse_cursor.vcxproj.filters │ │ │ └── qt_04_mouse_cursor.vcxproj.user │ │ ├── qt_05_parent_child_relation │ │ │ ├── main.cpp │ │ │ ├── qt_05_parent_child_relation.vcxproj │ │ │ ├── qt_05_parent_child_relation.vcxproj.filters │ │ │ └── qt_05_parent_child_relation.vcxproj.user │ │ ├── qt_06_z_order │ │ │ ├── main.cpp │ │ │ ├── qt_06_z_order.vcxproj │ │ │ ├── qt_06_z_order.vcxproj.filters │ │ │ └── qt_06_z_order.vcxproj.user │ │ ├── qt_07_top_window │ │ │ ├── Resource.qrc │ │ │ ├── images │ │ │ │ ├── close.png │ │ │ │ ├── max.png │ │ │ │ └── min.png │ │ │ ├── main.cpp │ │ │ ├── qt_07_top_window.vcxproj │ │ │ ├── qt_07_top_window.vcxproj.filters │ │ │ └── qt_07_top_window.vcxproj.user │ │ ├── qt_08_window_interact_state │ │ │ ├── main.cpp │ │ │ ├── qt_08_window_interact_state.vcxproj │ │ │ ├── qt_08_window_interact_state.vcxproj.filters │ │ │ └── qt_08_window_interact_state.vcxproj.user │ │ ├── qt_09_info_show │ │ │ ├── main.cpp │ │ │ ├── qt_09_info_show.vcxproj │ │ │ ├── qt_09_info_show.vcxproj.filters │ │ │ └── qt_09_info_show.vcxproj.user │ │ ├── qt_10_focus_control │ │ │ ├── main.cpp │ │ │ ├── qt_10_focus_control.vcxproj │ │ │ ├── qt_10_focus_control.vcxproj.filters │ │ │ └── qt_10_focus_control.vcxproj.user │ │ ├── qt_11_qwidget_signal_slot │ │ │ ├── main.cpp │ │ │ ├── qt_11_qwidget_signal_slot.vcxproj │ │ │ ├── qt_11_qwidget_signal_slot.vcxproj.filters │ │ │ └── qt_11_qwidget_signal_slot.vcxproj.user │ │ ├── qt_12_coord_convert │ │ │ ├── main.cpp │ │ │ ├── qt_12_coord_convert.vcxproj │ │ │ ├── qt_12_coord_convert.vcxproj.filters │ │ │ └── qt_12_coord_convert.vcxproj.user │ │ └── qt_GSGU_2_4.sln │ ├── qt_GSGU_2_5 │ │ ├── qt_00_qss_demo │ │ │ ├── images │ │ │ │ ├── binpicking.png │ │ │ │ ├── close.png │ │ │ │ ├── deptz_mix.png │ │ │ │ ├── deptz_single.png │ │ │ │ ├── open.png │ │ │ │ ├── ptz_mix.png │ │ │ │ ├── ptz_single.png │ │ │ │ └── special_template.png │ │ │ ├── main.cpp │ │ │ ├── qt_00_qss_demo.vcxproj │ │ │ ├── qt_00_qss_demo.vcxproj.filters │ │ │ ├── qt_00_qss_demo.vcxproj.user │ │ │ ├── vs2017_solution.cpp │ │ │ ├── vs2017_solution.h │ │ │ ├── vs2017_solution.qrc │ │ │ ├── vs2017_solution.qss │ │ │ └── vs2017_solution.ui │ │ └── qt_GSGU_2_5.sln │ ├── qt_GSGU_2_6 │ │ ├── GSGU_2_6.sln │ │ ├── qt_01_olive │ │ │ ├── main.cpp │ │ │ ├── panel │ │ │ │ ├── audiopanel │ │ │ │ │ ├── audiopanel.cpp │ │ │ │ │ └── audiopanel.h │ │ │ │ ├── footagepanel │ │ │ │ │ ├── footagepanel.cpp │ │ │ │ │ └── footagepanel.h │ │ │ │ ├── nodepanel │ │ │ │ │ ├── nodepanel.cpp │ │ │ │ │ └── nodepanel.h │ │ │ │ ├── panelmanager.cpp │ │ │ │ ├── panelmanager.h │ │ │ │ ├── panelwidget.cpp │ │ │ │ ├── panelwidget.h │ │ │ │ ├── parampanel │ │ │ │ │ ├── parampanel.cpp │ │ │ │ │ └── parampanel.h │ │ │ │ ├── projectpanel │ │ │ │ │ ├── projectpanel.cpp │ │ │ │ │ └── projectpanel.h │ │ │ │ ├── sequencepanel │ │ │ │ │ ├── sequencepanel.cpp │ │ │ │ │ └── sequencepanel.h │ │ │ │ ├── timelinepanel │ │ │ │ │ ├── timelinepanel.cpp │ │ │ │ │ └── timelinepanel.h │ │ │ │ └── toolpanel │ │ │ │ │ ├── toolpanel.cpp │ │ │ │ │ └── toolpanel.h │ │ │ ├── qt_01_olive.vcxproj │ │ │ ├── qt_01_olive.vcxproj.filters │ │ │ ├── qt_01_olive.vcxproj.user │ │ │ └── window │ │ │ │ ├── mainwindow.cpp │ │ │ │ └── mainwindow.h │ │ ├── qt_02_texteditor │ │ │ ├── demo.cpp │ │ │ ├── demo.h │ │ │ ├── demo.qrc │ │ │ ├── demo.ui │ │ │ ├── example.html │ │ │ ├── images │ │ │ │ ├── editcopy.png │ │ │ │ ├── editcut.png │ │ │ │ ├── editpaste.png │ │ │ │ ├── editredo.png │ │ │ │ ├── editundo.png │ │ │ │ ├── exportpdf.png │ │ │ │ ├── filenew.png │ │ │ │ ├── fileopen.png │ │ │ │ ├── fileprint.png │ │ │ │ ├── filesave.png │ │ │ │ ├── textbold.png │ │ │ │ ├── textcenter.png │ │ │ │ ├── textitalic.png │ │ │ │ ├── textjustify.png │ │ │ │ ├── textleft.png │ │ │ │ ├── textright.png │ │ │ │ ├── textunder.png │ │ │ │ ├── zoomin.png │ │ │ │ └── zoomout.png │ │ │ ├── main.cpp │ │ │ ├── qt_02_texteditor.vcxproj │ │ │ ├── qt_02_texteditor.vcxproj.filters │ │ │ └── qt_02_texteditor.vcxproj.user │ │ ├── qt_03_configdialog │ │ │ ├── configdialog.cpp │ │ │ ├── configdialog.h │ │ │ ├── configdialog.qrc │ │ │ ├── images │ │ │ │ ├── config.png │ │ │ │ ├── query.png │ │ │ │ └── update.png │ │ │ ├── main.cpp │ │ │ ├── pages.cpp │ │ │ ├── pages.h │ │ │ ├── qt_03_configdialog.vcxproj │ │ │ ├── qt_03_configdialog.vcxproj.filters │ │ │ └── qt_03_configdialog.vcxproj.user │ │ ├── qt_04_ppt_statusbar │ │ │ ├── images │ │ │ │ ├── add.png │ │ │ │ ├── book.png │ │ │ │ ├── dance.png │ │ │ │ ├── drink.png │ │ │ │ ├── grid.png │ │ │ │ └── sub.png │ │ │ ├── main.cpp │ │ │ ├── main.qrc │ │ │ ├── mainwindow.cpp │ │ │ ├── mainwindow.h │ │ │ ├── qt_04_ppt_statusbar.vcxproj │ │ │ ├── qt_04_ppt_statusbar.vcxproj.filters │ │ │ └── qt_04_ppt_statusbar.vcxproj.user │ │ ├── qt_05_orange_splashscreen │ │ │ ├── demo.cpp │ │ │ ├── demo.h │ │ │ ├── demo.qrc │ │ │ ├── demo.ui │ │ │ ├── images │ │ │ │ └── orange_splash_screen.png │ │ │ ├── main.cpp │ │ │ ├── qt_05_orange_splashscreen.vcxproj │ │ │ ├── qt_05_orange_splashscreen.vcxproj.filters │ │ │ ├── qt_05_orange_splashscreen.vcxproj.user │ │ │ ├── splashscreen.cpp │ │ │ └── splashscreen.h │ │ └── qt_06_mdi_area │ │ │ ├── demo.cpp │ │ │ ├── demo.h │ │ │ ├── demo.qrc │ │ │ ├── demo.ui │ │ │ ├── exit.svg │ │ │ ├── main.cpp │ │ │ ├── myplaineditor.cpp │ │ │ ├── myplaineditor.h │ │ │ ├── myplaineditor.ui │ │ │ ├── qt_06_mdi_area.vcxproj │ │ │ ├── qt_06_mdi_area.vcxproj.filters │ │ │ └── qt_06_mdi_area.vcxproj.user │ ├── qt_GSGU_2_7 │ │ ├── images │ │ │ └── love.png │ │ ├── qt_00_basic │ │ │ ├── main.cpp │ │ │ ├── mypushbutton.cpp │ │ │ ├── mypushbutton.h │ │ │ ├── mystyle.cpp │ │ │ ├── mystyle.h │ │ │ ├── qt_00_basic.vcxproj │ │ │ └── qt_00_basic.vcxproj.filters │ │ ├── qt_01_keyboard_input │ │ │ ├── main.cpp │ │ │ ├── qt_01_keyboard_input.vcxproj │ │ │ └── qt_01_keyboard_input.vcxproj.filters │ │ ├── qt_02_comboBox │ │ │ ├── main.cpp │ │ │ ├── qt_02_comboBox.vcxproj │ │ │ └── qt_02_comboBox.vcxproj.filters │ │ ├── qt_03_dialog │ │ │ ├── main.cpp │ │ │ ├── qt_03_dialog.vcxproj │ │ │ └── qt_03_dialog.vcxproj.filters │ │ ├── qt_04_slider │ │ │ ├── main.cpp │ │ │ ├── qt_04_slider.vcxproj │ │ │ └── qt_04_slider.vcxproj.filters │ │ ├── qt_05_spinbox │ │ │ ├── main.cpp │ │ │ ├── qt_05_spinbox.vcxproj │ │ │ └── qt_05_spinbox.vcxproj.filters │ │ ├── qt_06_frame │ │ │ ├── main.cpp │ │ │ ├── qt_06_frame.vcxproj │ │ │ └── qt_06_frame.vcxproj.filters │ │ └── qt_GSGU_2_7.sln │ └── qt_GSGU_2_9-0 │ │ ├── qgraphicsview_00_basic │ │ ├── lxqmainwindow.cpp │ │ ├── lxqmainwindow.h │ │ ├── main.cpp │ │ ├── qgraphicsview_00_basic.vcxproj │ │ └── qgraphicsview_00_basic.vcxproj.filters │ │ ├── qgraphicsview_01_basic │ │ ├── lxqmainwindow.cpp │ │ ├── lxqmainwindow.h │ │ ├── main.cpp │ │ ├── main.exe │ │ ├── qgraphicsview_01_basic.vcxproj │ │ └── qgraphicsview_01_basic.vcxproj.filters │ │ ├── qgraphicsview_02_basic │ │ ├── lxqmainwindow.cpp │ │ ├── lxqmainwindow.h │ │ ├── main.cpp │ │ ├── qgraphicsview_02_basic.vcxproj │ │ └── qgraphicsview_02_basic.vcxproj.filters │ │ ├── qgraphicsview_03_custom_view │ │ ├── lxqgraphicsview.cpp │ │ ├── lxqgraphicsview.h │ │ ├── lxqmainwindow.cpp │ │ ├── lxqmainwindow.h │ │ ├── main.cpp │ │ ├── qgraphicsview_03_custom_view.vcxproj │ │ └── qgraphicsview_03_custom_view.vcxproj.filters │ │ ├── qgraphicsview_04_custom_item │ │ ├── lxqgraphicsitem.cpp │ │ ├── lxqgraphicsitem.h │ │ ├── lxqgraphicsview.cpp │ │ ├── lxqgraphicsview.h │ │ ├── lxqmainwindow.cpp │ │ ├── lxqmainwindow.h │ │ ├── main.cpp │ │ ├── qgraphicsview_04_custom_item.vcxproj │ │ └── qgraphicsview_04_custom_item.vcxproj.filters │ │ ├── qgraphicsview_05_custom_scene │ │ ├── lxqgraphicsitem.cpp │ │ ├── lxqgraphicsitem.h │ │ ├── lxqgraphicsscene.cpp │ │ ├── lxqgraphicsscene.h │ │ ├── lxqgraphicsview.cpp │ │ ├── lxqgraphicsview.h │ │ ├── lxqmainwindow.cpp │ │ ├── lxqmainwindow.h │ │ ├── main.cpp │ │ ├── qgraphicsview_05_custom_scene.vcxproj │ │ └── qgraphicsview_05_custom_scene.vcxproj.filters │ │ ├── qgraphicsview_06_drag_drop_node │ │ ├── Resource.qrc │ │ ├── common.h │ │ ├── images │ │ │ └── move.png │ │ ├── lxdragdropwidget.ui │ │ ├── lxqdragdropwidget.cpp │ │ ├── lxqdragdropwidget.h │ │ ├── lxqgraphicsitem.cpp │ │ ├── lxqgraphicsitem.h │ │ ├── lxqgraphicsscene.cpp │ │ ├── lxqgraphicsscene.h │ │ ├── lxqgraphicsview.cpp │ │ ├── lxqgraphicsview.h │ │ ├── lxqtreewidget.cpp │ │ ├── lxqtreewidget.h │ │ ├── lxqundocommands.cpp │ │ ├── lxqundocommands.h │ │ ├── lxqundoview.cpp │ │ ├── lxqundoview.h │ │ ├── main.cpp │ │ ├── qgraphicsview_06_drag_drop_node.vcxproj │ │ └── qgraphicsview_06_drag_drop_node.vcxproj.filters │ │ ├── qt_coord │ │ ├── lxqcircle.cpp │ │ ├── lxqcircle.h │ │ ├── main.cpp │ │ ├── qt_coord.vcxproj │ │ └── qt_coord.vcxproj.filters │ │ ├── qt_learn_qgraphicsview.sln │ │ ├── qtpropertybrowser_00_basic │ │ ├── main.cpp │ │ ├── qtbuttonpropertybrowser.cpp │ │ ├── qtbuttonpropertybrowser.h │ │ ├── qteditorfactory.cpp │ │ ├── qteditorfactory.h │ │ ├── qtgroupboxpropertybrowser.cpp │ │ ├── qtgroupboxpropertybrowser.h │ │ ├── qtpropertybrowser.cpp │ │ ├── qtpropertybrowser.h │ │ ├── qtpropertybrowser_00_basic.vcxproj │ │ ├── qtpropertybrowser_00_basic.vcxproj.filters │ │ ├── qtpropertybrowserutils.cpp │ │ ├── qtpropertybrowserutils_p.h │ │ ├── qtpropertymanager.cpp │ │ ├── qtpropertymanager.h │ │ ├── qttreepropertybrowser.cpp │ │ ├── qttreepropertybrowser.h │ │ ├── qtvariantproperty.cpp │ │ └── qtvariantproperty.h │ │ ├── qtpropertybrowser_01_custom_manager │ │ ├── lxqtpropertymanager.cpp │ │ ├── lxqtpropertymanager.h │ │ ├── main.cpp │ │ ├── qtbuttonpropertybrowser.cpp │ │ ├── qtbuttonpropertybrowser.h │ │ ├── qteditorfactory.cpp │ │ ├── qteditorfactory.h │ │ ├── qtgroupboxpropertybrowser.cpp │ │ ├── qtgroupboxpropertybrowser.h │ │ ├── qtpropertybrowser.cpp │ │ ├── qtpropertybrowser.h │ │ ├── qtpropertybrowser_01_custom_manager.vcxproj │ │ ├── qtpropertybrowser_01_custom_manager.vcxproj.filters │ │ ├── qtpropertybrowserutils.cpp │ │ ├── qtpropertybrowserutils_p.h │ │ ├── qtpropertymanager.cpp │ │ ├── qtpropertymanager.h │ │ ├── qttreepropertybrowser.cpp │ │ ├── qttreepropertybrowser.h │ │ ├── qtvariantproperty.cpp │ │ └── qtvariantproperty.h │ │ └── qtpropertybrowser_02_custom_factory │ │ ├── lxqtpropertyfactory.cpp │ │ ├── lxqtpropertyfactory.h │ │ ├── lxqtpropertymanager.cpp │ │ ├── lxqtpropertymanager.h │ │ ├── lxqtpropertyvalidator.cpp │ │ ├── lxqtpropertyvalidator.h │ │ ├── main.cpp │ │ ├── qtbuttonpropertybrowser.cpp │ │ ├── qtbuttonpropertybrowser.h │ │ ├── qteditorfactory.cpp │ │ ├── qteditorfactory.h │ │ ├── qtgroupboxpropertybrowser.cpp │ │ ├── qtgroupboxpropertybrowser.h │ │ ├── qtpropertybrowser.cpp │ │ ├── qtpropertybrowser.h │ │ ├── qtpropertybrowser_02_custom_factory.vcxproj │ │ ├── qtpropertybrowser_02_custom_factory.vcxproj.filters │ │ ├── qtpropertybrowserutils.cpp │ │ ├── qtpropertybrowserutils_p.h │ │ ├── qtpropertymanager.cpp │ │ ├── qtpropertymanager.h │ │ ├── qttreepropertybrowser.cpp │ │ ├── qttreepropertybrowser.h │ │ ├── qtvariantproperty.cpp │ │ └── qtvariantproperty.h │ ├── 02python │ └── qt_GSGU_2_1 │ │ └── qtnamespace │ │ └── main.py │ ├── allQtClass.py │ └── allWidget.py └── qt_project ├── README.md ├── demo_use_propertybrowser ├── canvas_typed │ ├── canvas_typed.pro │ ├── canvas_typed.qdoc │ ├── main.cpp │ ├── mainwindow.cpp │ ├── mainwindow.h │ ├── qtcanvas.cpp │ └── qtcanvas.h ├── canvas_variant │ ├── canvas_variant.pro │ ├── canvas_variant.qdoc │ ├── main.cpp │ ├── mainwindow.cpp │ ├── mainwindow.h │ ├── qtcanvas.cpp │ └── qtcanvas.h ├── decoration │ ├── decoration.pro │ ├── decoration.qdoc │ ├── main.cpp │ ├── mydoublepropertymanager.cpp │ ├── mydoublepropertymanager.h │ ├── mydoublespinboxfactory.cpp │ └── mydoublespinboxfactory.h ├── demo │ ├── demo.pro │ ├── demo.qdoc │ ├── demo.qrc │ ├── images │ │ ├── down.png │ │ ├── left.png │ │ ├── right.png │ │ └── up.png │ └── main.cpp ├── demo_use_propertybrowser.pro ├── demo_use_propertybrowser.pro.user ├── extension │ ├── extension.pro │ ├── extension.qdoc │ └── main.cpp ├── object_controller │ ├── main.cpp │ ├── object_controller.pro │ ├── objectcontroller.cpp │ └── objectcontroller.h ├── qtpropertybrowser │ ├── INSTALL.TXT │ ├── README.TXT │ ├── buildlib │ │ └── buildlib.pro │ ├── common.pri │ ├── configure │ ├── configure.bat │ ├── doc │ │ ├── html │ │ │ ├── classic.css │ │ │ ├── images │ │ │ │ ├── canvas_typed.png │ │ │ │ ├── canvas_variant.png │ │ │ │ ├── decoration.png │ │ │ │ ├── demo.png │ │ │ │ ├── extension.png │ │ │ │ ├── object_controller.png │ │ │ │ ├── qt-logo.png │ │ │ │ ├── qtbuttonpropertybrowser.png │ │ │ │ ├── qtgroupboxpropertybrowser.png │ │ │ │ ├── qtpropertybrowser-duplicate.png │ │ │ │ ├── qtpropertybrowser.png │ │ │ │ ├── qttreepropertybrowser.png │ │ │ │ └── simple.png │ │ │ ├── index.html │ │ │ ├── qtabstracteditorfactory-members.html │ │ │ ├── qtabstracteditorfactory.html │ │ │ ├── qtabstracteditorfactorybase-members.html │ │ │ ├── qtabstracteditorfactorybase.html │ │ │ ├── qtabstractpropertybrowser-members.html │ │ │ ├── qtabstractpropertybrowser.html │ │ │ ├── qtabstractpropertymanager-members.html │ │ │ ├── qtabstractpropertymanager.html │ │ │ ├── qtboolpropertymanager-members.html │ │ │ ├── qtboolpropertymanager.html │ │ │ ├── qtbrowseritem-members.html │ │ │ ├── qtbrowseritem.html │ │ │ ├── qtbuttonpropertybrowser-members.html │ │ │ ├── qtbuttonpropertybrowser.html │ │ │ ├── qtchareditorfactory-members.html │ │ │ ├── qtchareditorfactory.html │ │ │ ├── qtcharpropertymanager-members.html │ │ │ ├── qtcharpropertymanager.html │ │ │ ├── qtcheckboxfactory-members.html │ │ │ ├── qtcheckboxfactory.html │ │ │ ├── qtcoloreditorfactory-members.html │ │ │ ├── qtcoloreditorfactory.html │ │ │ ├── qtcolorpropertymanager-members.html │ │ │ ├── qtcolorpropertymanager.html │ │ │ ├── qtcursoreditorfactory-members.html │ │ │ ├── qtcursoreditorfactory.html │ │ │ ├── qtcursorpropertymanager-members.html │ │ │ ├── qtcursorpropertymanager.html │ │ │ ├── qtdateeditfactory-members.html │ │ │ ├── qtdateeditfactory.html │ │ │ ├── qtdatepropertymanager-members.html │ │ │ ├── qtdatepropertymanager.html │ │ │ ├── qtdatetimeeditfactory-members.html │ │ │ ├── qtdatetimeeditfactory.html │ │ │ ├── qtdatetimepropertymanager-members.html │ │ │ ├── qtdatetimepropertymanager.html │ │ │ ├── qtdoublepropertymanager-members.html │ │ │ ├── qtdoublepropertymanager.html │ │ │ ├── qtdoublespinboxfactory-members.html │ │ │ ├── qtdoublespinboxfactory.html │ │ │ ├── qtenumeditorfactory-members.html │ │ │ ├── qtenumeditorfactory.html │ │ │ ├── qtenumpropertymanager-members.html │ │ │ ├── qtenumpropertymanager.html │ │ │ ├── qtflagpropertymanager-members.html │ │ │ ├── qtflagpropertymanager.html │ │ │ ├── qtfonteditorfactory-members.html │ │ │ ├── qtfonteditorfactory.html │ │ │ ├── qtfontpropertymanager-members.html │ │ │ ├── qtfontpropertymanager.html │ │ │ ├── qtgroupboxpropertybrowser-members.html │ │ │ ├── qtgroupboxpropertybrowser.html │ │ │ ├── qtgrouppropertymanager-members.html │ │ │ ├── qtgrouppropertymanager.html │ │ │ ├── qtintpropertymanager-members.html │ │ │ ├── qtintpropertymanager.html │ │ │ ├── qtkeysequenceeditorfactory-members.html │ │ │ ├── qtkeysequenceeditorfactory.html │ │ │ ├── qtkeysequencepropertymanager-members.html │ │ │ ├── qtkeysequencepropertymanager.html │ │ │ ├── qtlineeditfactory-members.html │ │ │ ├── qtlineeditfactory.html │ │ │ ├── qtlocalepropertymanager-members.html │ │ │ ├── qtlocalepropertymanager.html │ │ │ ├── qtpointfpropertymanager-members.html │ │ │ ├── qtpointfpropertymanager.html │ │ │ ├── qtpointpropertymanager-members.html │ │ │ ├── qtpointpropertymanager.html │ │ │ ├── qtproperty-members.html │ │ │ ├── qtproperty.html │ │ │ ├── qtpropertybrowser-example-canvas-typed.html │ │ │ ├── qtpropertybrowser-example-canvas-variant.html │ │ │ ├── qtpropertybrowser-example-decoration.html │ │ │ ├── qtpropertybrowser-example-demo.html │ │ │ ├── qtpropertybrowser-example-extension.html │ │ │ ├── qtpropertybrowser-example-object-controller.html │ │ │ ├── qtpropertybrowser-example-simple.html │ │ │ ├── qtpropertybrowser.dcf │ │ │ ├── qtpropertybrowser.index │ │ │ ├── qtpropertybrowser.qhp │ │ │ ├── qtrectfpropertymanager-members.html │ │ │ ├── qtrectfpropertymanager.html │ │ │ ├── qtrectpropertymanager-members.html │ │ │ ├── qtrectpropertymanager.html │ │ │ ├── qtscrollbarfactory-members.html │ │ │ ├── qtscrollbarfactory.html │ │ │ ├── qtsizefpropertymanager-members.html │ │ │ ├── qtsizefpropertymanager.html │ │ │ ├── qtsizepolicypropertymanager-members.html │ │ │ ├── qtsizepolicypropertymanager.html │ │ │ ├── qtsizepropertymanager-members.html │ │ │ ├── qtsizepropertymanager.html │ │ │ ├── qtsliderfactory-members.html │ │ │ ├── qtsliderfactory.html │ │ │ ├── qtspinboxfactory-members.html │ │ │ ├── qtspinboxfactory.html │ │ │ ├── qtstringpropertymanager-members.html │ │ │ ├── qtstringpropertymanager.html │ │ │ ├── qttimeeditfactory-members.html │ │ │ ├── qttimeeditfactory.html │ │ │ ├── qttimepropertymanager-members.html │ │ │ ├── qttimepropertymanager.html │ │ │ ├── qttreepropertybrowser-members.html │ │ │ ├── qttreepropertybrowser.html │ │ │ ├── qtvarianteditorfactory-members.html │ │ │ ├── qtvarianteditorfactory.html │ │ │ ├── qtvariantproperty-members.html │ │ │ ├── qtvariantproperty.html │ │ │ ├── qtvariantpropertymanager-members.html │ │ │ └── qtvariantpropertymanager.html │ │ ├── images │ │ │ ├── canvas_typed.png │ │ │ ├── canvas_variant.png │ │ │ ├── decoration.png │ │ │ ├── demo.png │ │ │ ├── extension.png │ │ │ ├── object_controller.png │ │ │ ├── qt-logo.png │ │ │ ├── qtbuttonpropertybrowser.png │ │ │ ├── qtgroupboxpropertybrowser.png │ │ │ ├── qtpropertybrowser-duplicate.png │ │ │ ├── qtpropertybrowser.png │ │ │ ├── qttreepropertybrowser.png │ │ │ └── simple.png │ │ └── index.qdoc │ ├── examples │ │ ├── canvas_typed │ │ │ ├── canvas_typed.pro │ │ │ ├── canvas_typed.qdoc │ │ │ ├── main.cpp │ │ │ ├── mainwindow.cpp │ │ │ ├── mainwindow.h │ │ │ ├── qtcanvas.cpp │ │ │ └── qtcanvas.h │ │ ├── canvas_variant │ │ │ ├── canvas_variant.pro │ │ │ ├── canvas_variant.qdoc │ │ │ ├── main.cpp │ │ │ ├── mainwindow.cpp │ │ │ ├── mainwindow.h │ │ │ ├── qtcanvas.cpp │ │ │ └── qtcanvas.h │ │ ├── decoration │ │ │ ├── decoration.pro │ │ │ ├── decoration.qdoc │ │ │ └── main.cpp │ │ ├── demo │ │ │ ├── demo.pro │ │ │ ├── demo.qdoc │ │ │ ├── demo.qrc │ │ │ ├── images │ │ │ │ ├── down.png │ │ │ │ ├── left.png │ │ │ │ ├── right.png │ │ │ │ └── up.png │ │ │ └── main.cpp │ │ ├── examples.pro │ │ ├── extension │ │ │ ├── extension.pro │ │ │ ├── extension.qdoc │ │ │ └── main.cpp │ │ ├── object_controller │ │ │ ├── main.cpp │ │ │ ├── object_controller.pro │ │ │ ├── object_controller.qdoc │ │ │ ├── objectcontroller.cpp │ │ │ └── objectcontroller.h │ │ └── simple │ │ │ ├── main.cpp │ │ │ ├── simple.pro │ │ │ └── simple.qdoc │ ├── qtpropertybrowser.pro │ ├── qtpropertybrowser.pro.user │ └── src │ │ ├── QtAbstractEditorFactoryBase │ │ ├── QtAbstractPropertyBrowser │ │ ├── QtAbstractPropertyManager │ │ ├── QtBoolPropertyManager │ │ ├── QtBrowserItem │ │ ├── QtButtonPropertyBrowser │ │ ├── QtCharEditorFactory │ │ ├── QtCharPropertyManager │ │ ├── QtCheckBoxFactory │ │ ├── QtColorEditorFactory │ │ ├── QtColorPropertyManager │ │ ├── QtCursorEditorFactory │ │ ├── QtCursorPropertyManager │ │ ├── QtDateEditFactory │ │ ├── QtDatePropertyManager │ │ ├── QtDateTimeEditFactory │ │ ├── QtDateTimePropertyManager │ │ ├── QtDoublePropertyManager │ │ ├── QtDoubleSpinBoxFactory │ │ ├── QtEnumEditorFactory │ │ ├── QtEnumPropertyManager │ │ ├── QtFlagPropertyManager │ │ ├── QtFontEditorFactory │ │ ├── QtFontPropertyManager │ │ ├── QtGroupBoxPropertyBrowser │ │ ├── QtGroupPropertyManager │ │ ├── QtIntPropertyManager │ │ ├── QtKeySequenceEditorFactory │ │ ├── QtKeySequencePropertyManager │ │ ├── QtLineEditFactory │ │ ├── QtLocalePropertyManager │ │ ├── QtPointFPropertyManager │ │ ├── QtPointPropertyManager │ │ ├── QtProperty │ │ ├── QtRectFPropertyManager │ │ ├── QtRectPropertyManager │ │ ├── QtScrollBarFactory │ │ ├── QtSizeFPropertyManager │ │ ├── QtSizePolicyPropertyManager │ │ ├── QtSizePropertyManager │ │ ├── QtSliderFactory │ │ ├── QtSpinBoxFactory │ │ ├── QtStringPropertyManager │ │ ├── QtTimeEditFactory │ │ ├── QtTimePropertyManager │ │ ├── QtTreePropertyBrowser │ │ ├── QtVariantEditorFactory │ │ ├── QtVariantProperty │ │ ├── QtVariantPropertyManager │ │ ├── images │ │ ├── cursor-arrow.png │ │ ├── cursor-busy.png │ │ ├── cursor-closedhand.png │ │ ├── cursor-cross.png │ │ ├── cursor-forbidden.png │ │ ├── cursor-hand.png │ │ ├── cursor-hsplit.png │ │ ├── cursor-ibeam.png │ │ ├── cursor-openhand.png │ │ ├── cursor-sizeall.png │ │ ├── cursor-sizeb.png │ │ ├── cursor-sizef.png │ │ ├── cursor-sizeh.png │ │ ├── cursor-sizev.png │ │ ├── cursor-uparrow.png │ │ ├── cursor-vsplit.png │ │ ├── cursor-wait.png │ │ └── cursor-whatsthis.png │ │ ├── qtbuttonpropertybrowser.cpp │ │ ├── qtbuttonpropertybrowser.h │ │ ├── qteditorfactory.cpp │ │ ├── qteditorfactory.h │ │ ├── qtgroupboxpropertybrowser.cpp │ │ ├── qtgroupboxpropertybrowser.h │ │ ├── qtpropertybrowser.cpp │ │ ├── qtpropertybrowser.h │ │ ├── qtpropertybrowser.pri │ │ ├── qtpropertybrowser.qrc │ │ ├── qtpropertybrowserutils.cpp │ │ ├── qtpropertybrowserutils_p.h │ │ ├── qtpropertymanager.cpp │ │ ├── qtpropertymanager.h │ │ ├── qttreepropertybrowser.cpp │ │ ├── qttreepropertybrowser.h │ │ ├── qtvariantproperty.cpp │ │ └── qtvariantproperty.h └── simple │ ├── cn.qm │ ├── cn.ts │ ├── main.cpp │ ├── simple.pro │ └── simple.qrc └── flow_layout_and_sizehint ├── flow_layout.sln ├── flow_layout ├── flow_layout.vcxproj ├── flow_layout.vcxproj.filters ├── flow_layout.vcxproj.user ├── flowlayout.cpp ├── flowlayout.h ├── main.cpp ├── mywidget.cpp └── mywidget.h └── sizehint_minimumsizehint ├── demo.cpp ├── demo.h ├── main.cpp ├── sizehint_minimumsizehint.vcxproj ├── sizehint_minimumsizehint.vcxproj.filters └── sizehint_minimumsizehint.vcxproj.user /2d_3d_vision/README.md: -------------------------------------------------------------------------------- 1 | ## 依赖的环境D:\depnedency 2 | - Eigen3 3 | - opencv346(内部依赖vtk的dll) 4 | ## 由于文件较大,不适合上传Git,有需要者,进QQ群675866892,下载依赖的dll 5 | -------------------------------------------------------------------------------- /2d_3d_vision/camera_calib/ppt/0.0相机标定原理.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/2d_3d_vision/camera_calib/ppt/0.0相机标定原理.pptx -------------------------------------------------------------------------------- /2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.28307.2092 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CalibRapid", "CalibRapid\CalibRapid.vcxproj", "{DE520820-00F2-4B49-8DE4-232D7475A5E4}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {DE520820-00F2-4B49-8DE4-232D7475A5E4}.Debug|x64.ActiveCfg = Debug|x64 15 | {DE520820-00F2-4B49-8DE4-232D7475A5E4}.Debug|x64.Build.0 = Debug|x64 16 | {DE520820-00F2-4B49-8DE4-232D7475A5E4}.Release|x64.ActiveCfg = Release|x64 17 | {DE520820-00F2-4B49-8DE4-232D7475A5E4}.Release|x64.Build.0 = Release|x64 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {AA1AB543-9243-4D3B-BCA3-BE238814E537} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/CalibRapid.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | images/extrinsic.png 4 | images/intrinsic.png 5 | images/loading.gif 6 | images/sizegrip.png 7 | images/stereo.png 8 | CalibRapid.qss 9 | 10 | 11 | -------------------------------------------------------------------------------- /2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/cameracalib.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include "opencv2/opencv.hpp" 4 | #include "opencv2/core/eigen.hpp" ///< opencv 和 eigen 互转 5 | #include "cameracalib_common.h" 6 | 7 | class CameraCalib_OpenCV 8 | { 9 | public: 10 | CameraCalib_OpenCV() = delete; 11 | 12 | /**画出角点*/ 13 | static bool drawCorners(cv::Mat& inImgMat, CalibBoardInfo& boardInfo); 14 | 15 | /**内参标定,输出camMat为3x3矩阵为相机内参,输出distCoeff为5x1列向量*/ 16 | static bool calibInter(cv::Mat& camMat, cv::Mat& distCoeff, std::vector& vImgMat, CalibBoardInfo& boardInfo); 17 | 18 | /**外参标定,输出result为4x4矩阵,为cam to base 的变换*/ 19 | static bool calibExter(cv::Mat& result, std::vector& vRobotInfo,cv::Mat& camMat, cv::Mat& distCoeff, 20 | CalibBoardInfo& boardInfo, 21 | HandEyeType handEyeType = HandEyeType::EYE_TO_HAND_ARTIC); 22 | 23 | /**双目标定,输出result为4x4矩阵,为cam1 to cam2 的变换*/ 24 | //static bool calibStereo(cv::Mat& result, std::string cam1ImgDir, std::string cam2ImgDir, lxCalibBoardInfo_OpenCV& boardInfo); 25 | 26 | private: 27 | class Impl; 28 | }; 29 | -------------------------------------------------------------------------------- /2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/data/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/data/1.png -------------------------------------------------------------------------------- /2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/data/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/data/2.png -------------------------------------------------------------------------------- /2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/data/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/data/3.png -------------------------------------------------------------------------------- /2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/data/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/data/4.png -------------------------------------------------------------------------------- /2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/data/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/data/5.png -------------------------------------------------------------------------------- /2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/data/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/data/6.png -------------------------------------------------------------------------------- /2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/data/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/data/7.png -------------------------------------------------------------------------------- /2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/data/JSON文件说明.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/data/JSON文件说明.png -------------------------------------------------------------------------------- /2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/data/robot_pose.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "img_path": "1.png", 4 | "xyz": [ 5 | 1766.74, 6 | -1089.17, 7 | 960.96 8 | ], 9 | "orient": [ 10 | 0.1738,-0.69496,0.21776,0.66288 11 | ] 12 | }, 13 | { 14 | "img_path": "2.png", 15 | "xyz": [ 16 | 1909.28, 17 | -766.33, 18 | 1075.17 19 | ], 20 | "orient": [ 21 | 0.10458,-0.77213,0.17165,0.60284 22 | ] 23 | }, 24 | { 25 | "img_path": "3.png", 26 | "xyz": [ 27 | 1971.07, 28 | -539.88, 29 | 1111.63 30 | ], 31 | "orient": [ 32 | 0.07884,-0.71187,0.11482,0.68836 33 | ] 34 | }, 35 | { 36 | "img_path": "4.png", 37 | "xyz": [ 38 | 1889.71, 39 | -514.84, 40 | 1134.16 41 | ], 42 | "orient": [ 43 | 0.08822,-0.61118,0.09657,0.78061 44 | ] 45 | }, 46 | { 47 | "img_path": "5.png", 48 | "xyz": [ 49 | 1706.12, 50 | -834.53, 51 | 1342.29 52 | ], 53 | "orient": [ 54 | 0.15308,-0.64727,0.16583,0.72808 55 | ] 56 | }, 57 | { 58 | "img_path": "6.png", 59 | "xyz": [ 60 | 1614.17, 61 | -772.72, 62 | 1469.22 63 | ], 64 | "orient": [ 65 | 0.09792,-0.62820,0.19566,0.74666 66 | ] 67 | }, 68 | { 69 | "img_path": "7.png", 70 | "xyz": [ 71 | 1682.31, 72 | -444.25, 73 | 1508.84 74 | ], 75 | "orient": [ 76 | 0.21025,-0.65064,0.0,0.72970 77 | ] 78 | } 79 | ] -------------------------------------------------------------------------------- /2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/data/single_calib.yaml: -------------------------------------------------------------------------------- 1 | %YAML:1.0 2 | --- 3 | camera_matrix: !!opencv-matrix 4 | rows: 3 5 | cols: 3 6 | dt: d 7 | data: [ 1.2021120939873149e+03, 0., 1.0271365300105685e+03, 0., 8 | 1.2017281260839716e+03, 7.9238198831882858e+02, 0., 0., 1. ] 9 | dist_coeffs: !!opencv-matrix 10 | rows: 14 11 | cols: 1 12 | dt: d 13 | data: [ 3.4507967432119124e+00, 1.6033261049808978e-01, 14 | 1.2400955322082504e-04, 6.5486373011738679e-04, 15 | 1.9957779489317648e-01, 3.5549784970424172e+00, 16 | 3.7418169970879089e-01, -7.0695811882750231e-02, 0., 0., 0., 0., 17 | 1.2864507351539101e-03, 3.9127983549074527e-03 ] 18 | reproj_err: 3.0969008803367615e-02 19 | -------------------------------------------------------------------------------- /2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/flowlayout.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | /** @brief Qt流式布局实现 */ 8 | class FlowLayout : public QLayout 9 | { 10 | public: 11 | explicit FlowLayout(QWidget *parent, int margin = -1, int hSpacing = -1, int vSpacing = -1); 12 | explicit FlowLayout(int margin = -1, int hSpacing = -1, int vSpacing = -1); 13 | ~FlowLayout(); 14 | 15 | /** 获取当前水平及竖直间距 */ 16 | int horizontalSpacing() const; 17 | int verticalSpacing() const; 18 | 19 | /** 常规基类布局函数重写 */ 20 | void addItem(QLayoutItem *item) override; 21 | Qt::Orientations expandingDirections() const override; 22 | bool hasHeightForWidth() const override; 23 | int heightForWidth(int) const override; 24 | int count() const override; 25 | QLayoutItem *itemAt(int index) const override; 26 | QSize minimumSize() const override; 27 | void setGeometry(const QRect &rect) override; 28 | QSize sizeHint() const override; 29 | QLayoutItem *takeAt(int index) override; 30 | 31 | private: 32 | 33 | /** 设置布局 */ 34 | int doLayout(const QRect &rect, bool testOnly) const; 35 | 36 | /** 像素间距设置 */ 37 | int smartSpacing(QStyle::PixelMetric pm) const; 38 | 39 | QList m_listItems; ///< 容器列表 40 | int m_nHSpace; ///< 竖直间距 41 | int m_nVSpace; ///< 水平间距 42 | }; -------------------------------------------------------------------------------- /2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/images/extrinsic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/images/extrinsic.png -------------------------------------------------------------------------------- /2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/images/intrinsic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/images/intrinsic.png -------------------------------------------------------------------------------- /2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/images/loading.gif -------------------------------------------------------------------------------- /2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/images/sizegrip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/images/sizegrip.png -------------------------------------------------------------------------------- /2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/images/stereo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/images/stereo.png -------------------------------------------------------------------------------- /2d_3d_vision/camera_calib/src/CalibRapid/CalibRapid/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "mainwindow.h" 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | 8 | QString qss; 9 | QFile qssFile(":./CalibRapid.qss"); 10 | if (qssFile.open(QFile::ReadOnly)) 11 | { 12 | qss += qssFile.readAll(); 13 | 14 | qssFile.close(); 15 | } 16 | a.setStyleSheet(qss); 17 | 18 | MainWindow mw; 19 | mw.show(); 20 | 21 | return a.exec(); 22 | } 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | QT 相关工程 2 | -------------------------------------------------------------------------------- /pyqt_project/README.md: -------------------------------------------------------------------------------- 1 | QT的同时,重新回顾Python语言 2 | -------------------------------------------------------------------------------- /pyqt_project/basic_code/set_application_icon.py: -------------------------------------------------------------------------------- 1 | from PyQt5.QtWidgets import QApplication, QMainWindow 2 | from PyQt5.QtGui import QIcon 3 | import sys 4 | import pkg_resources 5 | 6 | if __name__ == '__main__': 7 | app = QApplication(sys.argv) 8 | 9 | iconPath = pkg_resources.resource_filename( 10 | "orangecanvas", "icons/orange-canvas.svg" 11 | ) # 第一个参数为包名 第二个参数为相对于包的路径 12 | app.setWindowIcon(QIcon(iconPath)) 13 | mw = QMainWindow() 14 | mw.show() 15 | 16 | exit(app.exec()) 17 | -------------------------------------------------------------------------------- /pyqt_project/custom_signal_slot/main.py: -------------------------------------------------------------------------------- 1 | from PyQt5.QtCore import QObject, pyqtSignal as Signal 2 | 3 | 4 | class Demo(QObject): 5 | clicked = Signal(str) 6 | 7 | 8 | def slot(s: str): 9 | print("receive:", s) 10 | 11 | 12 | if __name__ == '__main__': 13 | d = Demo() 14 | d.clicked.connect(slot) # 连接信号和槽 15 | 16 | d.clicked.emit("tom") # 发射信号 17 | d.clicked.emit("jack") # 发射信号 18 | -------------------------------------------------------------------------------- /pyqt_project/demo0001/main.py: -------------------------------------------------------------------------------- 1 | from PyQt5.QtWidgets import QApplication 2 | from PyQt5.QtWidgets import QMainWindow 3 | import sys 4 | 5 | if __name__ == '__main__': 6 | app = QApplication(sys.argv) 7 | 8 | mw = QMainWindow() 9 | mw.show() 10 | 11 | app.exec() 12 | -------------------------------------------------------------------------------- /pyqt_project/demo_pkg/README.txt: -------------------------------------------------------------------------------- 1 | 1,python包管理的三种布局: 2 | - "src-layout": a directory representing a Python project that contains a "src" 3 | folder. Everything under the "src" folder is meant to be included in the 4 | distribution when packaging the project. Example:: 5 | 6 | . 7 | ├── tox.ini 8 | ├── pyproject.toml 9 | └── src/ 10 | └── mypkg/ 11 | ├── __init__.py 12 | ├── mymodule.py 13 | └── my_data_file.txt 14 | 15 | - "flat-layout": a Python project that does not use "src-layout" but instead 16 | have a directory under the project root for each package:: 17 | 18 | . 19 | ├── tox.ini 20 | ├── pyproject.toml 21 | └── mypkg/ 22 | ├── __init__.py 23 | ├── mymodule.py 24 | └── my_data_file.txt 25 | 26 | - "single-module": a project that contains a single Python script direct under 27 | the project root (no directory used):: 28 | 29 | . 30 | ├── tox.ini 31 | ├── pyproject.toml 32 | └── mymodule.py 33 | 34 | 2, pip install . 35 | 3, pip install -e . -------------------------------------------------------------------------------- /pyqt_project/demo_pkg/setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup, find_packages 2 | 3 | setup( 4 | name="demo_pkg", 5 | version="0.0.1", 6 | packages=find_packages("src"), # 包在src下 7 | package_dir={"": "src"}, # 包在src下 8 | package_data={ 9 | "":["*.xml"], # 所有包中的xml 10 | "widget":["*.json"], # widget包中的json 11 | "widget.widget2":["*.txt"], # widget.widget2包中的txt 12 | }, 13 | entry_points={ 14 | "console_scripts":[ 15 | "zcb = widget.widget2.a2:test_a2", 16 | ], 17 | "zxxx": ( # 生成插件 18 | 'example = widget.widget2', 19 | 'example2 = widget.widget2.a2', 20 | ), 21 | } 22 | ) 23 | -------------------------------------------------------------------------------- /pyqt_project/demo_pkg/src/widget/__init__.py: -------------------------------------------------------------------------------- 1 | def test(): 2 | print("hello world outer3 ") 3 | input("请输入") 4 | 5 | if __name__ == "__main__": 6 | test() -------------------------------------------------------------------------------- /pyqt_project/demo_pkg/src/widget/a.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/pyqt_project/demo_pkg/src/widget/a.json -------------------------------------------------------------------------------- /pyqt_project/demo_pkg/src/widget/a.py: -------------------------------------------------------------------------------- 1 | def test(): 2 | print("hello world outer3 ") 3 | 4 | if __name__ == "__main__": 5 | test() -------------------------------------------------------------------------------- /pyqt_project/demo_pkg/src/widget/a.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/pyqt_project/demo_pkg/src/widget/a.txt -------------------------------------------------------------------------------- /pyqt_project/demo_pkg/src/widget/a.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/pyqt_project/demo_pkg/src/widget/a.xml -------------------------------------------------------------------------------- /pyqt_project/demo_pkg/src/widget/widget2/__init__.py: -------------------------------------------------------------------------------- 1 | def test(): 2 | print("hello world inner ") 3 | 4 | if __name__ == "__main__": 5 | test() -------------------------------------------------------------------------------- /pyqt_project/demo_pkg/src/widget/widget2/a2.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/pyqt_project/demo_pkg/src/widget/widget2/a2.json -------------------------------------------------------------------------------- /pyqt_project/demo_pkg/src/widget/widget2/a2.py: -------------------------------------------------------------------------------- 1 | def test_a2(): 2 | print("hello world test a2 ") 3 | 4 | if __name__ == "__main__": 5 | test_a2() 6 | -------------------------------------------------------------------------------- /pyqt_project/demo_pkg/src/widget/widget2/a2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/pyqt_project/demo_pkg/src/widget/widget2/a2.txt -------------------------------------------------------------------------------- /pyqt_project/demo_pkg/src/widget/widget2/a2.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/pyqt_project/demo_pkg/src/widget/widget2/a2.xml -------------------------------------------------------------------------------- /pyqt_project/my_orange3/README.md: -------------------------------------------------------------------------------- 1 | Orange3是基于PyQt的一个开源的拖拽式的数据分析,数据可视化框架 2 | 3 | 官网:https://github.com/biolab/orange3 4 | -------------------------------------------------------------------------------- /pyqt_project/my_orange3/orange3-addon-zcb03/setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup 2 | 3 | 4 | setup( 5 | name="ZCBName", # pip list name 6 | packages=["zcbpkg"], # pkg name 7 | entry_points={ 8 | # entry point anytext = path 9 | "orange.widgets": ("anytext = zcbpkg",) 10 | }, 11 | ) -------------------------------------------------------------------------------- /pyqt_project/my_orange3/orange3-addon-zcb03/zcbpkg/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/pyqt_project/my_orange3/orange3-addon-zcb03/zcbpkg/__init__.py -------------------------------------------------------------------------------- /pyqt_project/my_orange3/orange3-addon-zcb04/setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup 2 | 3 | setup( 4 | name="zcbpkg", # pip list name 5 | packages=["zcbpkg"], # package name 6 | entry_points={ 7 | "orange.widgets": ["any_text = zcbpkg",] 8 | } 9 | ) 10 | -------------------------------------------------------------------------------- /pyqt_project/my_orange3/orange3-addon-zcb04/zcbpkg/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/pyqt_project/my_orange3/orange3-addon-zcb04/zcbpkg/__init__.py -------------------------------------------------------------------------------- /pyqt_project/my_orange3/orange3-addon-zcb04/zcbpkg/__pycache__/__init__.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/pyqt_project/my_orange3/orange3-addon-zcb04/zcbpkg/__pycache__/__init__.cpython-38.pyc -------------------------------------------------------------------------------- /pyqt_project/my_orange3/orange3-addon-zcb04/zcbpkg/__pycache__/lxQIntNumber.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/pyqt_project/my_orange3/orange3-addon-zcb04/zcbpkg/__pycache__/lxQIntNumber.cpython-38.pyc -------------------------------------------------------------------------------- /pyqt_project/my_orange3/orange3-addon-zcb04/zcbpkg/__pycache__/lxQIntNumber2.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/pyqt_project/my_orange3/orange3-addon-zcb04/zcbpkg/__pycache__/lxQIntNumber2.cpython-38.pyc -------------------------------------------------------------------------------- /pyqt_project/my_orange3/orange3-addon-zcb04/zcbpkg/orange.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/pyqt_project/my_orange3/orange3-addon-zcb04/zcbpkg/orange.ico -------------------------------------------------------------------------------- /pyqt_project/my_orange3/orange3-addon-zcb04/zcbpkg/orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/pyqt_project/my_orange3/orange3-addon-zcb04/zcbpkg/orange.png -------------------------------------------------------------------------------- /pyqt_project/my_orange3/orange3-example-addon/MANIFEST.in: -------------------------------------------------------------------------------- 1 | include orangecontrib/example/tutorials/*.ows 2 | include orangecontrib/example/widgets/icons/* 3 | -------------------------------------------------------------------------------- /pyqt_project/my_orange3/orange3-example-addon/README.md: -------------------------------------------------------------------------------- 1 | Orange3 Example Add-on 2 | ====================== 3 | 4 | This is an example add-on for [Orange3](http://orange.biolab.si). Add-on can extend Orange either 5 | in scripting or GUI part, or in both. We here focus on the GUI part and implement a simple (empty) widget, 6 | register it with Orange and add a new workflow with this widget to example tutorials. 7 | 8 | Installation 9 | ------------ 10 | 11 | To install the add-on from source run 12 | 13 | pip install . 14 | 15 | To register this add-on with Orange, but keep the code in the development directory (do not copy it to 16 | Python's site-packages directory), run 17 | 18 | pip install -e . 19 | 20 | Documentation / widget help can be built by running 21 | 22 | make html htmlhelp 23 | 24 | from the doc directory. 25 | 26 | Usage 27 | ----- 28 | 29 | After the installation, the widget from this add-on is registered with Orange. To run Orange from the terminal, 30 | use 31 | 32 | orange-canvas 33 | 34 | or 35 | 36 | python -m Orange.canvas 37 | 38 | The new widget appears in the toolbox bar under the section Example. 39 | 40 | ![screenshot](https://github.com/biolab/orange3-example-addon/blob/master/screenshot.png) 41 | -------------------------------------------------------------------------------- /pyqt_project/my_orange3/orange3-example-addon/README.pypi: -------------------------------------------------------------------------------- 1 | Orange3 Explain 2 | =============== 3 | 4 | Short description for the PyPI. 5 | See [documentation](http://orange3-imageanalytics.readthedocs.org/). 6 | 7 | Features 8 | -------- 9 | #### List of key features 10 | * Feature 1 11 | * Feature 2 -------------------------------------------------------------------------------- /pyqt_project/my_orange3/orange3-example-addon/doc/widgets/icons/mywidget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/pyqt_project/my_orange3/orange3-example-addon/doc/widgets/icons/mywidget.png -------------------------------------------------------------------------------- /pyqt_project/my_orange3/orange3-example-addon/doc/widgets/mywidget.md: -------------------------------------------------------------------------------- 1 | Hello World 2 | =========== 3 | 4 | ![image](icons/mywidget.png) 5 | 6 | A dummy widget that greets the world. 7 | 8 | Signals 9 | ------- 10 | 11 | - (None) 12 | 13 | **Outputs**: 14 | 15 | - (None) 16 | 17 | Description 18 | ----------- 19 | 20 | This is a simple widget that greets the world using a QLabel. If you are interested in widget development, you should take a look at it's source code. 21 | -------------------------------------------------------------------------------- /pyqt_project/my_orange3/orange3-example-addon/orangecontrib/__init__.py: -------------------------------------------------------------------------------- 1 | __import__("pkg_resources").declare_namespace(__name__) 2 | # orangecontrib is a namespace modules shared by multiple Orange add-on so it 3 | # needs to declare namespace. 4 | -------------------------------------------------------------------------------- /pyqt_project/my_orange3/orange3-example-addon/orangecontrib/example/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/pyqt_project/my_orange3/orange3-example-addon/orangecontrib/example/__init__.py -------------------------------------------------------------------------------- /pyqt_project/my_orange3/orange3-example-addon/orangecontrib/example/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/pyqt_project/my_orange3/orange3-example-addon/orangecontrib/example/tests/__init__.py -------------------------------------------------------------------------------- /pyqt_project/my_orange3/orange3-example-addon/orangecontrib/example/tests/test_example.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | from Orange.widgets.tests.base import WidgetTest 3 | 4 | from orangecontrib.example.widgets.mywidget import MyWidget 5 | 6 | 7 | class ExampleTests(unittest.TestCase): 8 | def test_addition(self): 9 | self.assertEqual(1 + 1, 2) 10 | 11 | 12 | class TestMyWidget(WidgetTest): 13 | def setUp(self): 14 | self.widget = self.create_widget(MyWidget) 15 | 16 | def test_addition(self): 17 | self.assertEqual(1 + 1, 2) 18 | -------------------------------------------------------------------------------- /pyqt_project/my_orange3/orange3-example-addon/orangecontrib/example/tutorials/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/pyqt_project/my_orange3/orange3-example-addon/orangecontrib/example/tutorials/__init__.py -------------------------------------------------------------------------------- /pyqt_project/my_orange3/orange3-example-addon/orangecontrib/example/tutorials/example_tutorial.ows: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | This is a wiget from an addon 10 | 11 | 12 | 13 | gAN9cQBYEwAAAHNhdmVkV2lkZ2V0R2VvbWV0cnlxAWNzaXAKX3VucGlja2xlX3R5cGUKcQJYDAAA 14 | AFB5UXQ0LlF0Q29yZXEDWAoAAABRQnl0ZUFycmF5cQRDLgHZ0MsAAQAAAAAGEQAABHQAAAbYAAAE 15 | 7QAABhEAAASKAAAG2AAABO0AAAAAAABxBYVxBodxB1JxCHMu 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /pyqt_project/my_orange3/orange3-example-addon/orangecontrib/example/widgets/__init__.py: -------------------------------------------------------------------------------- 1 | import sysconfig 2 | # Category metadata. 3 | 4 | # Category icon show in the menu 5 | ICON = "icons/category.svg" 6 | 7 | # Background color for category background in menu 8 | # and widget icon background in workflow. 9 | BACKGROUND = "light-blue" 10 | 11 | # Location of widget help files. 12 | WIDGET_HELP_PATH = ( 13 | # Development documentation 14 | # You need to build help pages manually using 15 | # make htmlhelp 16 | # inside doc folder 17 | ("{DEVELOP_ROOT}/doc/_build/htmlhelp/index.html", None), 18 | 19 | # Documentation included in wheel 20 | # Correct DATA_FILES entry is needed in setup.py and documentation has to be built 21 | # before the wheel is created. 22 | ("{}/help/orange3-example/index.html".format(sysconfig.get_path("data")), None), 23 | 24 | # Online documentation url, used when the local documentation is not available. 25 | # Url should point to a page with a section Widgets. This section should 26 | # includes links to documentation pages of each widget. Matching is 27 | # performed by comparing link caption to widget name. 28 | ("http://orange3-example-addon.readthedocs.io/en/latest/", "") 29 | ) 30 | -------------------------------------------------------------------------------- /pyqt_project/my_orange3/orange3-example-addon/orangecontrib/example/widgets/icons/category.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Category Icon 5 | 6 | Layer 1 7 | X 8 | 9 | -------------------------------------------------------------------------------- /pyqt_project/my_orange3/orange3-example-addon/orangecontrib/example/widgets/icons/mywidget.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Category Icon 5 | 6 | Layer 1 7 | 0 8 | 9 | 10 | -------------------------------------------------------------------------------- /pyqt_project/my_orange3/orange3-example-addon/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/pyqt_project/my_orange3/orange3-example-addon/screenshot.png -------------------------------------------------------------------------------- /pyqt_project/my_orange3/use_python_entry_points.py: -------------------------------------------------------------------------------- 1 | """ 2 | 配合setup.py 使用 3 | """ 4 | import pkg_resources 5 | 6 | ENTRY_POINT = "orange.widgets" 7 | entry_points_iter = pkg_resources.iter_entry_points(ENTRY_POINT) 8 | for entry_point in entry_points_iter: 9 | print(entry_point.name) # setup.py 中的 k 10 | print(entry_point.dist) # 版本信息 11 | print(entry_point.resolve()) # module object 模块对象 12 | -------------------------------------------------------------------------------- /pyqt_project/my_pkg/lxcg/lxrobot/__init__.py: -------------------------------------------------------------------------------- 1 | __import__("pkg_resources").declare_namespace(__name__) -------------------------------------------------------------------------------- /pyqt_project/my_pkg/lxcg/lxrobot/sql/__init__.py: -------------------------------------------------------------------------------- 1 | print("cg sql") -------------------------------------------------------------------------------- /pyqt_project/my_pkg/lxcg/setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup,find_packages 2 | 3 | 4 | setup( 5 | name="sql", 6 | packages=find_packages(), 7 | namespace_packages = ["lxrobot"] 8 | ) 9 | -------------------------------------------------------------------------------- /pyqt_project/my_pkg/lxzcb/lxrobot/__init__.py: -------------------------------------------------------------------------------- 1 | __import__("pkg_resources").declare_namespace(__name__) -------------------------------------------------------------------------------- /pyqt_project/my_pkg/lxzcb/lxrobot/canvas/__init__.py: -------------------------------------------------------------------------------- 1 | print("zcb canvas") -------------------------------------------------------------------------------- /pyqt_project/my_pkg/lxzcb/setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup,find_packages 2 | 3 | 4 | setup( 5 | name="canvas", 6 | packages=find_packages(), 7 | namespace_packages=["lxrobot"] 8 | ) 9 | -------------------------------------------------------------------------------- /qmake/多工程管理/fooapp/README.md: -------------------------------------------------------------------------------- 1 | ## 工程说明 2 | SUBDIRS官方文档: https://wiki.qt.io/SUBDIRS_-_handling_dependencies 3 | 4 | 如果使用mingw的qmake,那么要对应使用mingw-win32-make 5 | 6 | 7 | -------------------------------------------------------------------------------- /qmake/多工程管理/fooapp/fooapp.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = subdirs 2 | 3 | SUBDIRS = src/lib \ 4 | src/lib2 \ 5 | src/app \ 6 | 7 | CONFIG += ordered 8 | -------------------------------------------------------------------------------- /qmake/多工程管理/fooapp/src/app/app.cpp: -------------------------------------------------------------------------------- 1 | #include "lib.h" 2 | #include "lib2.h" 3 | 4 | int main() 5 | { 6 | 7 | print(); 8 | print2(); 9 | 10 | return 0; 11 | } 12 | -------------------------------------------------------------------------------- /qmake/多工程管理/fooapp/src/app/app.pro: -------------------------------------------------------------------------------- 1 | HEADERS = lib.h lib2.h 2 | SOURCES = app.cpp 3 | LIBS += -L../lib/release -L../lib2/release -llib -llib2 4 | -------------------------------------------------------------------------------- /qmake/多工程管理/fooapp/src/app/lib.h: -------------------------------------------------------------------------------- 1 | void print(); -------------------------------------------------------------------------------- /qmake/多工程管理/fooapp/src/app/lib2.h: -------------------------------------------------------------------------------- 1 | void print2(); -------------------------------------------------------------------------------- /qmake/多工程管理/fooapp/src/lib/lib.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "lib.h" 3 | 4 | void print(){ 5 | std::cout << "print"< 2 | #include "lib2.h" 3 | 4 | void print2(){ 5 | std::cout << "print2"< 4 | 5 | 6 | ### 视频链接 7 | Qt从入门到放弃^v^【GSGU:Getting Started to Giving Up 】 8 | 9 | ### Python 代码暂时未提供 10 | -------------------------------------------------------------------------------- /qt_GSGU/images/tree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/images/tree.png -------------------------------------------------------------------------------- /qt_GSGU/相关软件/QssStylesheetEditor1.6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/相关软件/QssStylesheetEditor1.6.zip -------------------------------------------------------------------------------- /qt_GSGU/相关软件/README.txt: -------------------------------------------------------------------------------- 1 | QssStyleSheetEditor1.6 2 | 如果双击AppStart.exe执行不起来,可以双击里面的AppStart.vbs 3 | TakerClor 4 | 用于取颜色的 5 | 6 | -------------------------------------------------------------------------------- /qt_GSGU/相关软件/TakeColor.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/相关软件/TakeColor.exe -------------------------------------------------------------------------------- /qt_GSGU/第一章 Qt简介、相关工具安装及使用/00ppt/1.1Qt简介.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第一章 Qt简介、相关工具安装及使用/00ppt/1.1Qt简介.pptx -------------------------------------------------------------------------------- /qt_GSGU/第一章 Qt简介、相关工具安装及使用/00ppt/1.2-1.4Qt相关开发工具安装使用.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第一章 Qt简介、相关工具安装及使用/00ppt/1.2-1.4Qt相关开发工具安装使用.pptx -------------------------------------------------------------------------------- /qt_GSGU/第一章 Qt简介、相关工具安装及使用/00ppt/1.5学习路线.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第一章 Qt简介、相关工具安装及使用/00ppt/1.5学习路线.pptx -------------------------------------------------------------------------------- /qt_GSGU/第一章 Qt简介、相关工具安装及使用/01c++/QtCreator/demo01/demo01.pro: -------------------------------------------------------------------------------- 1 | QT += core gui 2 | 3 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 4 | 5 | CONFIG += c++11 6 | 7 | # The following define makes your compiler emit warnings if you use 8 | # any Qt feature that has been marked deprecated (the exact warnings 9 | # depend on your compiler). Please consult the documentation of the 10 | # deprecated API in order to know how to port your code away from it. 11 | DEFINES += QT_DEPRECATED_WARNINGS 12 | 13 | # You can also make your code fail to compile if it uses deprecated APIs. 14 | # In order to do so, uncomment the following line. 15 | # You can also select to disable deprecated APIs only up to a certain version of Qt. 16 | #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 17 | 18 | SOURCES += \ 19 | main.cpp 20 | 21 | HEADERS += 22 | 23 | FORMS += 24 | 25 | # Default rules for deployment. 26 | qnx: target.path = /tmp/$${TARGET}/bin 27 | else: unix:!android: target.path = /opt/$${TARGET}/bin 28 | !isEmpty(target.path): INSTALLS += target 29 | -------------------------------------------------------------------------------- /qt_GSGU/第一章 Qt简介、相关工具安装及使用/01c++/QtCreator/demo01/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | int main(int argc, char *argv[]) 6 | { 7 | QApplication a(argc, argv); 8 | 9 | QMainWindow* mw = new QMainWindow; 10 | mw->setWindowTitle("我不是Qt"); 11 | mw->show(); 12 | 13 | return a.exec(); 14 | } 15 | -------------------------------------------------------------------------------- /qt_GSGU/第一章 Qt简介、相关工具安装及使用/01c++/VisualStudio/qt_demo/demo01/demo.cpp: -------------------------------------------------------------------------------- 1 | #include "demo.h" 2 | 3 | Demo::Demo(QWidget *parent) 4 | : QMainWindow(parent) 5 | { 6 | ui.setupUi(this); 7 | } 8 | 9 | Demo::~Demo() 10 | { 11 | } 12 | -------------------------------------------------------------------------------- /qt_GSGU/第一章 Qt简介、相关工具安装及使用/01c++/VisualStudio/qt_demo/demo01/demo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "ui_demo.h" 5 | 6 | class Demo : public QMainWindow 7 | { 8 | Q_OBJECT 9 | 10 | public: 11 | Demo(QWidget *parent = nullptr); 12 | ~Demo(); 13 | 14 | private: 15 | Ui::DemoClass ui; 16 | }; 17 | -------------------------------------------------------------------------------- /qt_GSGU/第一章 Qt简介、相关工具安装及使用/01c++/VisualStudio/qt_demo/demo01/demo.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /qt_GSGU/第一章 Qt简介、相关工具安装及使用/01c++/VisualStudio/qt_demo/demo01/demo.ui: -------------------------------------------------------------------------------- 1 | 2 | DemoClass 3 | 4 | 5 | DemoClass 6 | 7 | 8 | 9 | 0 10 | 0 11 | 600 12 | 400 13 | 14 | 15 | 16 | Demo 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /qt_GSGU/第一章 Qt简介、相关工具安装及使用/01c++/VisualStudio/qt_demo/demo01/demo01.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-09-20T12:08:33.8310525Z 6 | 7 | 8 | 2022-09-20T12:08:33.9317822Z 9 | 10 | -------------------------------------------------------------------------------- /qt_GSGU/第一章 Qt简介、相关工具安装及使用/01c++/VisualStudio/qt_demo/demo01/main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第一章 Qt简介、相关工具安装及使用/01c++/VisualStudio/qt_demo/demo01/main.cpp -------------------------------------------------------------------------------- /qt_GSGU/第一章 Qt简介、相关工具安装及使用/01c++/VisualStudio/qt_demo/qt_demo.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.28307.2092 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "demo01", "demo01\demo01.vcxproj", "{6D95A615-FF4D-4600-BFB7-115BB6C6C594}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {6D95A615-FF4D-4600-BFB7-115BB6C6C594}.Debug|x64.ActiveCfg = Debug|x64 15 | {6D95A615-FF4D-4600-BFB7-115BB6C6C594}.Debug|x64.Build.0 = Debug|x64 16 | {6D95A615-FF4D-4600-BFB7-115BB6C6C594}.Release|x64.ActiveCfg = Release|x64 17 | {6D95A615-FF4D-4600-BFB7-115BB6C6C594}.Release|x64.Build.0 = Release|x64 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {C44AE6DD-0996-4D10-B631-EF72D9AAFE68} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /qt_GSGU/第一章 Qt简介、相关工具安装及使用/02python/demo01/main.py: -------------------------------------------------------------------------------- 1 | from PyQt5.QtWidgets import QApplication,QMainWindow 2 | import sys 3 | 4 | 5 | if __name__ == '__main__': 6 | 7 | app = QApplication(sys.argv) 8 | 9 | mw = QMainWindow() 10 | mw.setWindowTitle("我不是Qt") 11 | mw.show() 12 | 13 | app.exec() 14 | 15 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/00ppt/2.1 Widgets体系概述、Qt命名空间、编程规范.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/00ppt/2.1 Widgets体系概述、Qt命名空间、编程规范.pptx -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/00ppt/2.2 QObject之事件系统、信号和槽、对象树、计时功能.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/00ppt/2.2 QObject之事件系统、信号和槽、对象树、计时功能.pptx -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/00ppt/2.3 Application相关.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/00ppt/2.3 Application相关.pptx -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/00ppt/2.4 QWidget-所有可视化控件的基石.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/00ppt/2.4 QWidget-所有可视化控件的基石.pptx -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/00ppt/2.5 QSS-控件也爱美.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/00ppt/2.5 QSS-控件也爱美.pptx -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/00ppt/2.6 主窗口—QMainWindow相关.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/00ppt/2.6 主窗口—QMainWindow相关.pptx -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/00ppt/2.7 用户交互与信息展示.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/00ppt/2.7 用户交互与信息展示.pptx -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/00ppt/2.9拖拽相关1.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/00ppt/2.9拖拽相关1.pptx -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_1/qt_GSGU_2_1.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.28307.1585 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qtnamespace", "qtnamespace\qtnamespace.vcxproj", "{55D10876-FDFA-4E62-BF08-B4454270509F}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {55D10876-FDFA-4E62-BF08-B4454270509F}.Debug|x64.ActiveCfg = Debug|x64 15 | {55D10876-FDFA-4E62-BF08-B4454270509F}.Debug|x64.Build.0 = Debug|x64 16 | {55D10876-FDFA-4E62-BF08-B4454270509F}.Release|x64.ActiveCfg = Release|x64 17 | {55D10876-FDFA-4E62-BF08-B4454270509F}.Release|x64.Build.0 = Release|x64 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {D8EC4130-B212-492A-8FD6-1300AEBFE5ED} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_1/qtnamespace/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | void printCurDate(Qt::DateFormat format) 5 | { 6 | qDebug() << "--------------> " << QDate::currentDate().toString(format); 7 | } 8 | 9 | 10 | int main(int argc, char *argv[]) 11 | { 12 | printCurDate(Qt::ISODate); 13 | printCurDate(Qt::LocalDate); 14 | printCurDate(Qt::TextDate); 15 | } 16 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_1/qtnamespace/qtnamespace.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-09-25T14:20:46.4241906Z 6 | 7 | 8 | 2022-09-25T14:20:46.6745103Z 9 | 10 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_2/qt_GSGU_2_2.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.28307.2092 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qt_event", "qt_event\qt_event.vcxproj", "{4531940C-978C-421F-B5AF-11B168389651}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {4531940C-978C-421F-B5AF-11B168389651}.Debug|x64.ActiveCfg = Debug|x64 15 | {4531940C-978C-421F-B5AF-11B168389651}.Debug|x64.Build.0 = Debug|x64 16 | {4531940C-978C-421F-B5AF-11B168389651}.Release|x64.ActiveCfg = Release|x64 17 | {4531940C-978C-421F-B5AF-11B168389651}.Release|x64.Build.0 = Release|x64 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {562FFE14-9859-4BE1-BA48-28849FFDD1DF} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_2/qt_event/main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_2/qt_event/main.cpp -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_2/qt_event/mybutton.cpp: -------------------------------------------------------------------------------- 1 | #include "mybutton.h" 2 | 3 | #include 4 | 5 | MyButton::MyButton(QWidget *parent/*=nullptr*/) 6 | :QPushButton(parent) 7 | { 8 | } 9 | 10 | MyButton::~MyButton() 11 | { 12 | qDebug() << "---------> " << text() << " pointer addr " << this; 13 | } 14 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_2/qt_event/mybutton.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class MyButton : public QPushButton 6 | { 7 | Q_OBJECT 8 | 9 | public: 10 | MyButton(QWidget *parent=nullptr); 11 | ~MyButton(); 12 | }; 13 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_2/qt_event/mydrawboard.cpp: -------------------------------------------------------------------------------- 1 | #include "mydrawboard.h" 2 | 3 | #include 4 | #include 5 | 6 | MyDrawboard::MyDrawboard(QWidget *parent) 7 | : QWidget(parent) 8 | { 9 | setFixedSize(400, 400); 10 | } 11 | 12 | void MyDrawboard::mouseMoveEvent(QMouseEvent *event) 13 | { 14 | if (event->x() < 0 || event->y() < 0 || event->x() > 400 || event->y() > 400) 15 | return; 16 | 17 | m_vPoint.push_back(QPoint(event->x(), event->y())); 18 | 19 | update(); 20 | } 21 | 22 | void MyDrawboard::mousePressEvent(QMouseEvent *event) 23 | { 24 | if (event->x() < 0 || event->y() < 0 || event->x() > 400 || event->y() > 400) 25 | return; 26 | 27 | m_vPoint.push_back(QPoint(event->x(),event->y())); 28 | } 29 | 30 | void MyDrawboard::paintEvent(QPaintEvent *event) 31 | { 32 | QPainter painter(this); 33 | 34 | QPen pen; 35 | pen.setWidth(10); 36 | pen.setColor(Qt::red); 37 | 38 | painter.setPen(pen); 39 | 40 | painter.drawPoints(QPolygon(m_vPoint)); 41 | } 42 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_2/qt_event/mydrawboard.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | class MyDrawboard : public QWidget 7 | { 8 | Q_OBJECT 9 | 10 | public: 11 | MyDrawboard(QWidget *parent = nullptr); 12 | 13 | protected: 14 | void mouseMoveEvent(QMouseEvent *event) override; 15 | void mousePressEvent(QMouseEvent *event) override; 16 | void paintEvent(QPaintEvent *event) override; 17 | 18 | private: 19 | QVector m_vPoint; 20 | }; 21 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_2/qt_event/mydrawboard2.cpp: -------------------------------------------------------------------------------- 1 | #include "mydrawboard2.h" 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | MyDrawboard2::MyDrawboard2(QWidget *parent) 8 | : QWidget(parent) 9 | { 10 | setFixedSize(400, 400); 11 | } 12 | 13 | void MyDrawboard2::mouseMoveEvent(QMouseEvent *event) 14 | { 15 | if (event->x() < 0 || event->y() < 0 || event->x() > 400 || event->y() > 400) 16 | return; 17 | 18 | m_vPoint.push_back(QPoint(event->x(), event->y())); 19 | 20 | update(); 21 | } 22 | 23 | void MyDrawboard2::mousePressEvent(QMouseEvent *event) 24 | { 25 | if (event->x() < 0 || event->y() < 0 || event->x() > 400 || event->y() > 400) 26 | return; 27 | 28 | qDebug() << "--------------> mouse press event"; 29 | 30 | m_vPoint.push_back(QPoint(event->x(),event->y())); 31 | } 32 | 33 | void MyDrawboard2::paintEvent(QPaintEvent *event) 34 | { 35 | QPainter painter(this); 36 | 37 | QPen pen; 38 | pen.setWidth(10); 39 | pen.setColor(Qt::red); 40 | 41 | painter.setPen(pen); 42 | 43 | painter.drawPoints(QPolygon(m_vPoint)); 44 | } 45 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_2/qt_event/mydrawboard2.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | class MyDrawboard2 : public QWidget 7 | { 8 | Q_OBJECT 9 | 10 | public: 11 | MyDrawboard2(QWidget *parent = nullptr); 12 | 13 | protected: 14 | void mouseMoveEvent(QMouseEvent *event) override; 15 | void mousePressEvent(QMouseEvent *event) override; 16 | void paintEvent(QPaintEvent *event) override; 17 | 18 | private: 19 | QVector m_vPoint; 20 | }; 21 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_2/qt_event/mydrawboard3.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_2/qt_event/mydrawboard3.cpp -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_2/qt_event/mydrawboard3.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | class MyDrawboard3 : public QWidget 7 | { 8 | Q_OBJECT 9 | 10 | public: 11 | MyDrawboard3(QWidget *parent = nullptr); 12 | 13 | protected: 14 | void mouseMoveEvent(QMouseEvent *event) override; 15 | void mousePressEvent(QMouseEvent *event) override; 16 | void paintEvent(QPaintEvent *event) override; 17 | 18 | private slots: 19 | void slot_clearBoard(); 20 | 21 | private: 22 | QVector m_vPoint; 23 | }; 24 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_2/qt_event/qt_event.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-10-01T14:34:52.5433100Z 6 | 7 | 8 | 2022-10-01T14:34:52.7008896Z 9 | 10 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_00_crazy_http_client/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | int main(int argc, char *argv[]) 7 | { 8 | QCoreApplication a(argc, argv); 9 | 10 | 11 | QTcpSocket client; 12 | 13 | while (1) 14 | { 15 | client.connectToHost("www.baidu.com", 80); 16 | 17 | client.waitForConnected(); ///< 阻塞等待 18 | 19 | /**发出请求*/ 20 | QString requestLine = "GET / HTTP/1.1\r\n"; 21 | QString requestHeader = "Host:www.baidu.com\r\n"; 22 | QString requestBlank = "\r\n"; 23 | QString requestBody = "\r\n"; 24 | QString requestData = requestLine + requestHeader + requestBlank + requestBody; 25 | client.write(requestData.toUtf8()); 26 | 27 | client.waitForReadyRead(); ///< 阻塞等待 28 | qDebug() << client.readAll(); 29 | 30 | QThread::sleep(1); 31 | } 32 | 33 | return a.exec(); 34 | } 35 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_01_simple_http_server/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "webserver.h" 4 | 5 | int main(int argc, char *argv[]) 6 | { 7 | QCoreApplication a(argc, argv); 8 | 9 | WebServer server; 10 | 11 | return a.exec(); 12 | } 13 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_01_simple_http_server/webserver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | class WebServer : public QObject 8 | { 9 | Q_OBJECT 10 | 11 | public: 12 | WebServer(QObject *parent=nullptr); 13 | ~WebServer(); 14 | 15 | private slots: 16 | void slot_newConn(); 17 | void slot_readyRead(); 18 | 19 | private: 20 | QTcpServer * m_pServer; 21 | QTcpSocket * m_pSocket; 22 | 23 | 24 | }; 25 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_02_magic_object/demo.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | images/1.png 4 | images/2.png 5 | images/3.png 6 | images/4.png 7 | images/5.png 8 | 9 | 10 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_02_magic_object/images/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_02_magic_object/images/1.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_02_magic_object/images/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_02_magic_object/images/2.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_02_magic_object/images/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_02_magic_object/images/3.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_02_magic_object/images/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_02_magic_object/images/4.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_02_magic_object/images/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_02_magic_object/images/5.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_02_magic_object/main.cpp: -------------------------------------------------------------------------------- 1 | #include "demo.h" 2 | #include 3 | #include 4 | 5 | int main(int argc, char *argv[]) 6 | { 7 | QApplication a(argc, argv); 8 | 9 | Demo w; 10 | 11 | /**center window*/ 12 | const QRect availableGeometry = QApplication::desktop()->availableGeometry(&w); 13 | w.resize(availableGeometry.width() / 2, availableGeometry.height() * 2 / 3); 14 | w.move((availableGeometry.width() - w.width()) / 2, 15 | (availableGeometry.height() - w.height()) / 2); 16 | 17 | w.show(); 18 | return a.exec(); 19 | } 20 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/demo.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/demo.cpp -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/demo.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | images/editcopy.png 4 | images/editcut.png 5 | images/editpaste.png 6 | images/editredo.png 7 | images/editundo.png 8 | images/exportpdf.png 9 | images/filenew.png 10 | images/fileopen.png 11 | images/fileprint.png 12 | images/filesave.png 13 | images/textbold.png 14 | images/textcenter.png 15 | images/textitalic.png 16 | images/textjustify.png 17 | images/textleft.png 18 | images/textright.png 19 | images/textunder.png 20 | images/zoomin.png 21 | images/zoomout.png 22 | 23 | 24 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/editcopy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/editcopy.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/editcut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/editcut.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/editpaste.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/editpaste.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/editredo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/editredo.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/editundo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/editundo.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/exportpdf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/exportpdf.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/filenew.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/filenew.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/fileopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/fileopen.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/fileprint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/fileprint.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/filesave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/filesave.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/textbold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/textbold.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/textcenter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/textcenter.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/textitalic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/textitalic.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/textjustify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/textjustify.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/textleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/textleft.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/textright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/textright.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/textunder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/textunder.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/zoomin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/zoomin.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/zoomout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_3/qt_03_argparser_settings/images/zoomout.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_00_qwidget_pos_size/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | 8 | QWidget w; 9 | w.move(300, 300); 10 | w.resize(500, 500); 11 | w.show(); 12 | 13 | return a.exec(); 14 | } 15 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_00_qwidget_pos_size/qt_00_qwidget_pos_size.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-10-22T13:03:11.5643163Z 6 | 7 | 8 | 2022-10-22T13:03:11.6883165Z 9 | 10 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_01_certain_count_child_widget/main.cpp: -------------------------------------------------------------------------------- 1 | #pragma execution_character_set("utf-8") 2 | #include 3 | #include 4 | 5 | class Demo :public QWidget 6 | { 7 | public: 8 | Demo(int totalCnt, int colCnt,QWidget* parent=nullptr) 9 | :QWidget(parent), m_nTotalCnt(totalCnt),m_nColCnt(colCnt) 10 | { 11 | if (totalCnt <= 0 || colCnt <= 0) 12 | totalCnt = colCnt = 1; 13 | 14 | setWindowTitle("我不是Qt"); 15 | move(300, 300); 16 | resize(500, 500); 17 | 18 | setupUi(); 19 | } 20 | 21 | private: 22 | void setupUi() 23 | { 24 | int rowCnt = m_nTotalCnt / m_nColCnt; 25 | int itemW = width() / m_nColCnt; 26 | int itemH = height() / rowCnt; 27 | for (int r = 0; r < rowCnt; r++) 28 | { 29 | for (int c = 0; c < m_nColCnt; c++) 30 | { 31 | if((r+1)*m_nColCnt + (c+1) > m_nTotalCnt) 32 | break; 33 | QWidget* childItem = new QWidget(this); 34 | childItem->move(c*itemW, r*itemH); 35 | childItem->resize(itemW, itemH); 36 | childItem->setStyleSheet("background-color:red;border:1px solid yellow;"); 37 | } 38 | } 39 | } 40 | 41 | int m_nTotalCnt; ///< 总数 42 | int m_nColCnt; ///< 列数 43 | }; 44 | 45 | int main(int argc, char *argv[]) 46 | { 47 | QApplication a(argc, argv); 48 | 49 | Demo demo(50, 3); 50 | demo.show(); 51 | 52 | return a.exec(); 53 | } 54 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_01_certain_count_child_widget/qt_01_certain_count_child_widget.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-10-22T13:06:47.1668389Z 6 | 7 | 8 | 2022-10-22T13:06:47.2638410Z 9 | 10 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_02_min_max_size/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | 8 | QWidget w; 9 | 10 | w.setMinimumSize(300, 300); 11 | w.setMaximumSize(500, 500); 12 | //w.resize(600, 600); ///< not work 13 | 14 | w.show(); 15 | 16 | return a.exec(); 17 | } 18 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_02_min_max_size/qt_02_min_max_size.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-10-23T02:04:11.3910708Z 6 | 7 | 8 | 2022-10-23T02:04:11.5580664Z 9 | 10 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_03_event_handle/Resource.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | images/back.png 4 | 5 | 6 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_03_event_handle/images/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_03_event_handle/images/back.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_03_event_handle/qt_03_event_handle.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-10-23T02:10:42.8744303Z 6 | 7 | 8 | 2022-10-23T02:10:43.0914294Z 9 | 10 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_04_mouse_cursor/Resource.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | images/my_cursor.png 4 | 5 | 6 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_04_mouse_cursor/images/my_cursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_04_mouse_cursor/images/my_cursor.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_04_mouse_cursor/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | 8 | QWidget w; 9 | //w.setCursor(Qt::ClosedHandCursor); 10 | w.setCursor(QCursor(QPixmap(":/images/my_cursor.png").scaledToWidth(50),0,0)); 11 | w.show(); 12 | 13 | return a.exec(); 14 | } 15 | 16 | 17 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_04_mouse_cursor/qt_04_mouse_cursor.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-10-23T06:03:36.8901059Z 6 | 7 | 8 | 2022-10-23T06:03:36.9581063Z 9 | 10 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_05_parent_child_relation/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | int main(int argc, char *argv[]) 7 | { 8 | QApplication a(argc, argv); 9 | 10 | QWidget w; 11 | w.resize(500, 500); 12 | QLabel lb1("label1",&w); 13 | qDebug() << w.childAt(0, 0); // QLabel(0x572beff548) 14 | qDebug() << w.childAt(100, 0); // QWidget(0x0) 15 | 16 | qDebug() << lb1.parentWidget(); 17 | qDebug() << lb1.parent(); 18 | 19 | QLabel lb2("label2", &w); 20 | lb2.move(10, 80); 21 | qDebug() << w.childrenRect(); 22 | 23 | w.show(); 24 | 25 | return a.exec(); 26 | } 27 | 28 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_05_parent_child_relation/qt_05_parent_child_relation.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-10-23T06:26:29.9829475Z 6 | 7 | 8 | 2022-10-23T06:26:30.0789501Z 9 | 10 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_06_z_order/qt_06_z_order.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-10-23T06:45:10.6375824Z 6 | 7 | 8 | 2022-10-23T06:45:10.7155846Z 9 | 10 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_07_top_window/Resource.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | images/close.png 4 | images/max.png 5 | images/min.png 6 | 7 | 8 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_07_top_window/images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_07_top_window/images/close.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_07_top_window/images/max.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_07_top_window/images/max.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_07_top_window/images/min.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_07_top_window/images/min.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_07_top_window/qt_07_top_window.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-10-23T07:20:04.6668303Z 6 | 7 | 8 | 2022-10-23T07:20:04.7318320Z 9 | 10 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_08_window_interact_state/main.cpp: -------------------------------------------------------------------------------- 1 | #pragma execution_character_set("utf-8") 2 | #include 3 | #include 4 | 5 | int main1(int argc, char *argv[]) 6 | { 7 | QApplication a(argc, argv); 8 | 9 | QWidget w; 10 | //w.setWindowModified(true); 11 | w.setWindowTitle("我不是Qt[*]"); 12 | w.show(); 13 | 14 | return a.exec(); 15 | } 16 | 17 | int main(int argc, char *argv[]) 18 | { 19 | QApplication a(argc, argv); 20 | 21 | QWidget w; 22 | QWidget w2; 23 | w2.show(); 24 | w.show(); 25 | 26 | w2.raise(); 27 | qDebug() << w.isActiveWindow(); // true 28 | qDebug() << w2.isActiveWindow(); // false 29 | 30 | return a.exec(); 31 | } 32 | 33 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_08_window_interact_state/qt_08_window_interact_state.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-10-23T08:35:09.4267714Z 6 | 7 | 8 | 2022-10-23T08:35:09.5627720Z 9 | 10 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_09_info_show/main.cpp: -------------------------------------------------------------------------------- 1 | #pragma execution_character_set("utf-8") 2 | #include 3 | #include 4 | #include 5 | 6 | int main(int argc, char *argv[]) 7 | { 8 | QApplication a(argc, argv); 9 | QMainWindow w; 10 | w.setStatusBar(new QStatusBar(&w)); 11 | 12 | w.setStatusTip("显示在状态栏"); 13 | w.setToolTip("工具提示,简单有力"); 14 | w.setWhatsThis("这是啥提示,它通常比toolTip更长更详细,默认shift+f1触发"); 15 | w.show(); 16 | 17 | return a.exec(); 18 | } 19 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_09_info_show/qt_09_info_show.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-10-23T08:53:56.1058835Z 6 | 7 | 8 | 2022-10-23T08:53:56.1708832Z 9 | 10 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_10_focus_control/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | #include 5 | 6 | int main(int argc, char *argv[]) 7 | { 8 | QApplication a(argc, argv); 9 | 10 | QWidget w; 11 | 12 | QLineEdit * le1 = new QLineEdit(&w); 13 | QLineEdit * le2 = new QLineEdit(&w); 14 | QLineEdit * le3 = new QLineEdit(&w); 15 | 16 | le1->move(50, 50); 17 | le2->move(100, 100); 18 | le3->move(150, 150); 19 | 20 | w.setTabOrder(le1, le3); 21 | w.setTabOrder(le3, le2); 22 | 23 | w.show(); 24 | 25 | return a.exec(); 26 | } 27 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_10_focus_control/qt_10_focus_control.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-10-23T09:13:39.0178998Z 6 | 7 | 8 | 2022-10-23T09:13:39.0898990Z 9 | 10 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_11_qwidget_signal_slot/main.cpp: -------------------------------------------------------------------------------- 1 | #pragma execution_character_set("utf-8") 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | class MyWidget1 :public QWidget 8 | { 9 | public: 10 | MyWidget1(QWidget* parent = nullptr) 11 | :QWidget(parent) 12 | { 13 | setWindowTitle("QWidget右键信号"); 14 | resize(400, 400); 15 | 16 | setContextMenuPolicy(Qt::CustomContextMenu); // 使用customContextMenuRequested 信号,必须要设置这个policy 17 | connect(this, &MyWidget1::customContextMenuRequested, this, &MyWidget1::slot_customContextMenuRequested); 18 | } 19 | 20 | private slots : 21 | void slot_customContextMenuRequested(const QPoint &pos) 22 | { 23 | qDebug() << "right mouse press." << pos << " " << mapToGlobal(pos); 24 | } 25 | }; 26 | 27 | 28 | 29 | int main(int argc, char *argv[]) 30 | { 31 | QApplication a(argc, argv); 32 | 33 | MyWidget1 w; 34 | 35 | w.show(); 36 | 37 | return a.exec(); 38 | } 39 | 40 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_11_qwidget_signal_slot/qt_11_qwidget_signal_slot.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-10-25T09:11:26.0283306Z 6 | 7 | 8 | 2022-10-25T09:11:26.1163327Z 9 | 10 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_12_coord_convert/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | class ChildWidget :public QWidget 7 | { 8 | public: 9 | ChildWidget(QWidget*parent = nullptr) 10 | :QWidget(parent) 11 | { 12 | setStyleSheet("background-color:green;"); 13 | } 14 | protected: 15 | void mousePressEvent(QMouseEvent *event) override 16 | { 17 | qDebug() << "self pos is " << event->pos(); 18 | qDebug() << "parent pos is " << mapToParent(event->pos()); 19 | qDebug() << "global pos is " << mapToGlobal(event->pos()); 20 | } 21 | }; 22 | 23 | int main(int argc, char *argv[]) 24 | { 25 | QApplication a(argc, argv); 26 | 27 | QWidget w; 28 | ChildWidget child(&w); 29 | 30 | w.resize(500, 500); 31 | child.resize(100, 100); 32 | child.move(200, 200); 33 | 34 | w.show(); 35 | 36 | return a.exec(); 37 | } 38 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_4/qt_12_coord_convert/qt_12_coord_convert.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-10-26T12:06:34.0885512Z 6 | 7 | 8 | 2022-10-26T12:06:34.1845541Z 9 | 10 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_5/qt_00_qss_demo/images/binpicking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_5/qt_00_qss_demo/images/binpicking.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_5/qt_00_qss_demo/images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_5/qt_00_qss_demo/images/close.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_5/qt_00_qss_demo/images/deptz_mix.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_5/qt_00_qss_demo/images/deptz_mix.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_5/qt_00_qss_demo/images/deptz_single.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_5/qt_00_qss_demo/images/deptz_single.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_5/qt_00_qss_demo/images/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_5/qt_00_qss_demo/images/open.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_5/qt_00_qss_demo/images/ptz_mix.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_5/qt_00_qss_demo/images/ptz_mix.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_5/qt_00_qss_demo/images/ptz_single.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_5/qt_00_qss_demo/images/ptz_single.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_5/qt_00_qss_demo/images/special_template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_5/qt_00_qss_demo/images/special_template.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_5/qt_00_qss_demo/main.cpp: -------------------------------------------------------------------------------- 1 | #include "vs2017_solution.h" 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | 8 | VS2017SolutionMng mngDialog; 9 | mngDialog.show(); 10 | 11 | return a.exec(); 12 | } 13 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_5/qt_00_qss_demo/qt_00_qss_demo.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-11-18T01:54:48.3717921Z 6 | 7 | 8 | 2022-11-18T01:54:23.0537494Z 9 | 10 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_5/qt_00_qss_demo/vs2017_solution.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "ui_vs2017_solution.h" 5 | 6 | #include 7 | 8 | enum CustomRole 9 | { 10 | TYPE = Qt::UserRole+1, // 类别角色 11 | DESC, // 描述角色 12 | }; 13 | 14 | enum RobotScene 15 | { 16 | DEPTZ = 10, // 拆垛 17 | PTZ, // 码垛 18 | PICK, // 工业拣选 19 | CUSTOM // 自定义 20 | }; 21 | 22 | class VS2017SolutionMng : public QDialog 23 | { 24 | Q_OBJECT 25 | 26 | public: 27 | VS2017SolutionMng(QWidget *parent = nullptr); 28 | ~VS2017SolutionMng(); 29 | 30 | private slots: 31 | void slot_treeItemPressed(const QModelIndex &index); 32 | void slot_listItemPressed(const QModelIndex &index); 33 | 34 | private: 35 | void initModel(); 36 | 37 | void setupTreeView(); 38 | void setupListView(); 39 | void setupActions(); 40 | void updateDescInfo(QString type,QString detail); 41 | 42 | Ui::VS2017SolutionMngClass ui; 43 | 44 | QStandardItemModel* m_pTreeItemModel; 45 | QStandardItemModel* m_pListItemModel; // 全部的list 46 | QStandardItemModel* m_pListShowModel; // 当前展示的list 47 | 48 | QModelIndex m_tCurTreeIndex; // 当前选中的tree item 49 | }; 50 | 51 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_5/qt_00_qss_demo/vs2017_solution.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | vs2017_solution.qss 4 | images/binpicking.png 5 | images/close.png 6 | images/deptz_mix.png 7 | images/deptz_single.png 8 | images/open.png 9 | images/ptz_mix.png 10 | images/ptz_single.png 11 | images/special_template.png 12 | 13 | 14 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_5/qt_GSGU_2_5.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.28307.2092 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qt_00_qss_demo", "qt_00_qss_demo\qt_00_qss_demo.vcxproj", "{62F09760-13AB-4CB1-99DB-8EDE0D20DC7B}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {62F09760-13AB-4CB1-99DB-8EDE0D20DC7B}.Debug|x64.ActiveCfg = Debug|x64 15 | {62F09760-13AB-4CB1-99DB-8EDE0D20DC7B}.Debug|x64.Build.0 = Debug|x64 16 | {62F09760-13AB-4CB1-99DB-8EDE0D20DC7B}.Release|x64.ActiveCfg = Release|x64 17 | {62F09760-13AB-4CB1-99DB-8EDE0D20DC7B}.Release|x64.Build.0 = Release|x64 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {1A34391E-547D-495B-8509-47C490F65168} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_01_olive/main.cpp: -------------------------------------------------------------------------------- 1 | #include "window/mainwindow.h" 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | 8 | MainWindow mw; 9 | mw.show(); 10 | 11 | return a.exec(); 12 | } 13 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_01_olive/panel/audiopanel/audiopanel.cpp: -------------------------------------------------------------------------------- 1 | #include "audiopanel/audiopanel.h" 2 | 3 | AudioPanel::AudioPanel(QWidget *parent/*=nullptr*/) 4 | :PanelWidget(parent) 5 | { 6 | setWindowTitle("Audio Manager"); 7 | } 8 | 9 | AudioPanel::~AudioPanel() 10 | { 11 | } 12 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_01_olive/panel/audiopanel/audiopanel.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "panelwidget.h" 4 | 5 | class AudioPanel : public PanelWidget 6 | { 7 | Q_OBJECT 8 | 9 | public: 10 | AudioPanel(QWidget *parent=nullptr); 11 | ~AudioPanel(); 12 | }; 13 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_01_olive/panel/footagepanel/footagepanel.cpp: -------------------------------------------------------------------------------- 1 | #include "footagepanel/footagepanel.h" 2 | 3 | FootagePanel::FootagePanel(QWidget *parent/*=nullptr*/) 4 | :PanelWidget(parent) 5 | { 6 | setWindowTitle("Footage Viewer"); 7 | } 8 | 9 | FootagePanel::~FootagePanel() 10 | { 11 | } 12 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_01_olive/panel/footagepanel/footagepanel.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "panelwidget.h" 4 | 5 | class FootagePanel : public PanelWidget 6 | { 7 | Q_OBJECT 8 | 9 | public: 10 | FootagePanel(QWidget *parent=nullptr); 11 | ~FootagePanel(); 12 | }; 13 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_01_olive/panel/nodepanel/nodepanel.cpp: -------------------------------------------------------------------------------- 1 | #include "nodepanel/nodepanel.h" 2 | 3 | #include 4 | 5 | NodePanel::NodePanel(QWidget *parent/*=nullptr*/) 6 | :PanelWidget(parent) 7 | { 8 | setWindowTitle("Node Editor"); 9 | } 10 | 11 | NodePanel::~NodePanel() 12 | { 13 | } 14 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_01_olive/panel/nodepanel/nodepanel.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "panelwidget.h" 4 | 5 | class NodePanel : public PanelWidget 6 | { 7 | Q_OBJECT 8 | 9 | public: 10 | NodePanel(QWidget *parent=nullptr); 11 | ~NodePanel(); 12 | }; 13 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_01_olive/panel/panelmanager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | class PanelWidget; 5 | 6 | class PanelManager : public QObject 7 | { 8 | Q_OBJECT 9 | 10 | public: 11 | static PanelManager* instance(); 12 | 13 | void registerPanel(PanelWidget* panel); 14 | void unRegisterPanel(PanelWidget* panel); 15 | 16 | public slots: 17 | void slot_focusChanged(QWidget *old, QWidget *now); 18 | 19 | private: 20 | PanelManager(QWidget *parent = nullptr); 21 | static PanelManager* m_pInstance; 22 | 23 | QList m_listFocusHistory; 24 | }; 25 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_01_olive/panel/panelwidget.cpp: -------------------------------------------------------------------------------- 1 | #include "panelmanager.h" 2 | #include "panelwidget.h" 3 | #include 4 | 5 | PanelWidget::PanelWidget(QWidget *parent) 6 | : QDockWidget(parent),m_bBorderVisible(false) 7 | { 8 | setFocusPolicy(Qt::ClickFocus); 9 | 10 | PanelManager::instance()->registerPanel(this); 11 | } 12 | 13 | PanelWidget::~PanelWidget() 14 | { 15 | PanelManager::instance()->unRegisterPanel(this); 16 | } 17 | 18 | void PanelWidget::setBorderVisible(bool visible) 19 | { 20 | if (m_bBorderVisible == visible) 21 | return; 22 | 23 | m_bBorderVisible = visible; 24 | 25 | update(); 26 | } 27 | 28 | void PanelWidget::paintEvent(QPaintEvent *event) 29 | { 30 | QDockWidget::paintEvent(event); 31 | 32 | // Draw a highlight border 33 | if (m_bBorderVisible) 34 | { 35 | QPainter p(this); 36 | 37 | QRect highlightBorder = rect(); 38 | highlightBorder.adjust(0, 0, -1, -1); 39 | 40 | p.setPen(palette().highlight().color()); 41 | p.drawRect(highlightBorder); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_01_olive/panel/panelwidget.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class PanelWidget : public QDockWidget 6 | { 7 | Q_OBJECT 8 | 9 | public: 10 | PanelWidget(QWidget *parent=nullptr); 11 | ~PanelWidget(); 12 | 13 | void setBorderVisible(bool visible); 14 | 15 | protected: 16 | void paintEvent(QPaintEvent *event) override; 17 | 18 | private: 19 | bool m_bBorderVisible; 20 | }; 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_01_olive/panel/parampanel/parampanel.cpp: -------------------------------------------------------------------------------- 1 | #include "parampanel/parampanel.h" 2 | 3 | ParamPanel::ParamPanel(QWidget *parent/*=nullptr*/) 4 | :PanelWidget(parent) 5 | { 6 | setWindowTitle("Parameter Editor"); 7 | } 8 | 9 | ParamPanel::~ParamPanel() 10 | { 11 | } 12 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_01_olive/panel/parampanel/parampanel.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "panelwidget.h" 4 | 5 | class ParamPanel : public PanelWidget 6 | { 7 | Q_OBJECT 8 | 9 | public: 10 | ParamPanel(QWidget *parent=nullptr); 11 | ~ParamPanel(); 12 | }; 13 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_01_olive/panel/projectpanel/projectpanel.cpp: -------------------------------------------------------------------------------- 1 | #include "projectpanel/projectpanel.h" 2 | 3 | ProjectPanel::ProjectPanel(QWidget *parent/*=nullptr*/) 4 | :PanelWidget(parent) 5 | { 6 | setWindowTitle("Project"); 7 | } 8 | 9 | ProjectPanel::~ProjectPanel() 10 | { 11 | } 12 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_01_olive/panel/projectpanel/projectpanel.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "panelwidget.h" 4 | 5 | class ProjectPanel : public PanelWidget 6 | { 7 | Q_OBJECT 8 | 9 | public: 10 | ProjectPanel(QWidget *parent=nullptr); 11 | ~ProjectPanel(); 12 | }; 13 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_01_olive/panel/sequencepanel/sequencepanel.cpp: -------------------------------------------------------------------------------- 1 | #include "sequencepanel/sequencepanel.h" 2 | 3 | SequencePanel::SequencePanel(QWidget *parent/*=nullptr*/) 4 | :PanelWidget(parent) 5 | { 6 | setWindowTitle("Sequence Viewer"); 7 | } 8 | 9 | SequencePanel::~SequencePanel() 10 | { 11 | } 12 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_01_olive/panel/sequencepanel/sequencepanel.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "panelwidget.h" 4 | 5 | class SequencePanel : public PanelWidget 6 | { 7 | Q_OBJECT 8 | 9 | public: 10 | SequencePanel(QWidget *parent=nullptr); 11 | ~SequencePanel(); 12 | }; 13 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_01_olive/panel/timelinepanel/timelinepanel.cpp: -------------------------------------------------------------------------------- 1 | #include "timelinepanel/timelinepanel.h" 2 | 3 | TimelinePanel::TimelinePanel(QWidget *parent/*=nullptr*/) 4 | :PanelWidget(parent) 5 | { 6 | setWindowTitle("Timeline"); 7 | } 8 | 9 | TimelinePanel::~TimelinePanel() 10 | { 11 | } 12 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_01_olive/panel/timelinepanel/timelinepanel.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "panelwidget.h" 4 | 5 | class TimelinePanel : public PanelWidget 6 | { 7 | Q_OBJECT 8 | 9 | public: 10 | TimelinePanel(QWidget *parent=nullptr); 11 | ~TimelinePanel(); 12 | }; 13 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_01_olive/panel/toolpanel/toolpanel.cpp: -------------------------------------------------------------------------------- 1 | #include "toolpanel/toolpanel.h" 2 | 3 | ToolPanel::ToolPanel(QWidget *parent/*=nullptr*/) 4 | :PanelWidget(parent) 5 | { 6 | setWindowTitle("Tools"); 7 | } 8 | 9 | ToolPanel::~ToolPanel() 10 | { 11 | } 12 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_01_olive/panel/toolpanel/toolpanel.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "panelwidget.h" 4 | 5 | class ToolPanel : public PanelWidget 6 | { 7 | Q_OBJECT 8 | 9 | public: 10 | ToolPanel(QWidget *parent=nullptr); 11 | ~ToolPanel(); 12 | }; 13 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_01_olive/qt_01_olive.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-12-29T08:36:20.1664311Z 6 | 7 | 8 | 2022-12-29T08:36:20.3178831Z 9 | 10 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_01_olive/window/mainwindow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class PanelWidget; 6 | 7 | class FootagePanel; 8 | class ParamPanel; 9 | class NodePanel; 10 | 11 | class SequencePanel; 12 | class ProjectPanel; 13 | class ToolPanel; 14 | class TimelinePanel; 15 | class AudioPanel; 16 | 17 | class MainWindow : public QMainWindow 18 | { 19 | Q_OBJECT 20 | 21 | public: 22 | MainWindow(QWidget *parent=nullptr); 23 | ~MainWindow(); 24 | 25 | private: 26 | void setAppStyle(); 27 | void createStandardPanels(); 28 | void setDefaultLayout(); 29 | 30 | // Standard panels 31 | FootagePanel* m_pFootagePanel; 32 | ParamPanel* m_pParamPanel; 33 | NodePanel* m_pNodePanel; 34 | 35 | SequencePanel* m_pSeqPanel; 36 | ProjectPanel* m_pProjectPanel; 37 | ToolPanel* m_pToolPanel; 38 | TimelinePanel* m_pTimelinePanel; 39 | AudioPanel* m_pAudioPanel; 40 | }; 41 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/demo.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/demo.cpp -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/demo.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | example.html 4 | images/editcopy.png 5 | images/editcut.png 6 | images/editpaste.png 7 | images/editredo.png 8 | images/editundo.png 9 | images/exportpdf.png 10 | images/filenew.png 11 | images/fileopen.png 12 | images/fileprint.png 13 | images/filesave.png 14 | images/textbold.png 15 | images/textcenter.png 16 | images/textitalic.png 17 | images/textjustify.png 18 | images/textleft.png 19 | images/textright.png 20 | images/textunder.png 21 | images/zoomin.png 22 | images/zoomout.png 23 | 24 | 25 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/editcopy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/editcopy.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/editcut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/editcut.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/editpaste.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/editpaste.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/editredo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/editredo.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/editundo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/editundo.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/exportpdf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/exportpdf.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/filenew.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/filenew.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/fileopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/fileopen.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/fileprint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/fileprint.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/filesave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/filesave.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/textbold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/textbold.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/textcenter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/textcenter.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/textitalic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/textitalic.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/textjustify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/textjustify.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/textleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/textleft.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/textright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/textright.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/textunder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/textunder.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/zoomin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/zoomin.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/zoomout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/images/zoomout.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/main.cpp: -------------------------------------------------------------------------------- 1 | #include "demo.h" 2 | #include 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | int main(int argc, char *argv[]) 9 | { 10 | QApplication app(argc, argv); 11 | QCoreApplication::setOrganizationName("ZCB"); 12 | QCoreApplication::setApplicationName("Rich Text"); 13 | QCoreApplication::setApplicationVersion("0.0.1"); 14 | 15 | /**1. arg parser*/ 16 | QCommandLineParser parser; 17 | parser.setApplicationDescription("Usage: prog.exe [option]"); 18 | parser.addHelpOption(); 19 | parser.addVersionOption(); 20 | parser.addPositionalArgument("file", "The file to open."); 21 | parser.process(app); 22 | 23 | Demo w; 24 | /**2. center mainwindow*/ 25 | const QRect availableGeometry = QApplication::desktop()->availableGeometry(&w); 26 | w.resize(availableGeometry.width() / 2, (availableGeometry.height() * 2) / 3); 27 | w.move((availableGeometry.width() - w.width()) / 2, (availableGeometry.height() - w.height()) / 2); 28 | 29 | if (!w.load(parser.positionalArguments().value(0, ":/example.html"))) 30 | w.newFile(); 31 | 32 | w.show(); 33 | 34 | return app.exec(); 35 | } 36 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_02_texteditor/qt_02_texteditor.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-12-31T06:18:34.4669626Z 6 | 7 | 8 | 2022-12-31T06:18:34.6819627Z 9 | 10 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_03_configdialog/configdialog.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class QListWidget; 6 | class QListWidgetItem; 7 | class QStackedWidget; 8 | 9 | class ConfigDialog : public QDialog 10 | { 11 | Q_OBJECT 12 | 13 | public: 14 | ConfigDialog(); 15 | 16 | public slots: 17 | void changePage(QListWidgetItem *current, QListWidgetItem *previous); 18 | 19 | private: 20 | void createIcons(); 21 | 22 | QListWidget *contentsWidget; 23 | QStackedWidget *pagesWidget; 24 | }; 25 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_03_configdialog/configdialog.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | images/config.png 4 | images/query.png 5 | images/update.png 6 | 7 | 8 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_03_configdialog/images/config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_03_configdialog/images/config.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_03_configdialog/images/query.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_03_configdialog/images/query.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_03_configdialog/images/update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_03_configdialog/images/update.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_03_configdialog/main.cpp: -------------------------------------------------------------------------------- 1 | #include "configdialog.h" 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | 8 | ConfigDialog configDialog; 9 | configDialog.show(); 10 | 11 | return a.exec(); 12 | } 13 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_03_configdialog/pages.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class ConfigurationPage : public QWidget 6 | { 7 | public: 8 | ConfigurationPage(QWidget *parent = 0); 9 | }; 10 | 11 | class QueryPage : public QWidget 12 | { 13 | public: 14 | QueryPage(QWidget *parent = 0); 15 | }; 16 | 17 | class UpdatePage : public QWidget 18 | { 19 | public: 20 | UpdatePage(QWidget *parent = 0); 21 | }; 22 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_03_configdialog/qt_03_configdialog.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-12-30T06:29:46.5274533Z 6 | 7 | 8 | 2022-12-30T06:29:46.8954505Z 9 | 10 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_04_ppt_statusbar/images/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_04_ppt_statusbar/images/add.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_04_ppt_statusbar/images/book.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_04_ppt_statusbar/images/book.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_04_ppt_statusbar/images/dance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_04_ppt_statusbar/images/dance.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_04_ppt_statusbar/images/drink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_04_ppt_statusbar/images/drink.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_04_ppt_statusbar/images/grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_04_ppt_statusbar/images/grid.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_04_ppt_statusbar/images/sub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_04_ppt_statusbar/images/sub.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_04_ppt_statusbar/main.cpp: -------------------------------------------------------------------------------- 1 | #include "mainwindow.h" 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | 8 | MainWindow mw; 9 | mw.show(); 10 | 11 | return a.exec(); 12 | } 13 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_04_ppt_statusbar/main.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | images/dance.png 4 | images/book.png 5 | images/drink.png 6 | images/grid.png 7 | images/add.png 8 | images/sub.png 9 | 10 | 11 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_04_ppt_statusbar/mainwindow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class MainWindow : public QMainWindow 6 | { 7 | Q_OBJECT 8 | 9 | public: 10 | MainWindow(QWidget *parent = nullptr); 11 | ~MainWindow(); 12 | 13 | private: 14 | void initStatusBar(); 15 | void initQss(); 16 | }; 17 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_04_ppt_statusbar/qt_04_ppt_statusbar.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-12-30T06:53:58.6634772Z 6 | 7 | 8 | 2022-12-30T06:53:58.7354786Z 9 | 10 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_05_orange_splashscreen/demo.cpp: -------------------------------------------------------------------------------- 1 | #include "demo.h" 2 | 3 | Demo::Demo(QWidget *parent) 4 | : QMainWindow(parent) 5 | { 6 | ui.setupUi(this); 7 | } 8 | 9 | Demo::~Demo() 10 | {} 11 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_05_orange_splashscreen/demo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "ui_demo.h" 5 | 6 | class Demo : public QMainWindow 7 | { 8 | Q_OBJECT 9 | 10 | public: 11 | Demo(QWidget *parent = nullptr); 12 | ~Demo(); 13 | 14 | private: 15 | Ui::DemoClass ui; 16 | }; 17 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_05_orange_splashscreen/demo.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | images/orange_splash_screen.png 4 | 5 | 6 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_05_orange_splashscreen/demo.ui: -------------------------------------------------------------------------------- 1 | 2 | DemoClass 3 | 4 | 5 | DemoClass 6 | 7 | 8 | 9 | 0 10 | 0 11 | 600 12 | 400 13 | 14 | 15 | 16 | Demo 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_05_orange_splashscreen/images/orange_splash_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_05_orange_splashscreen/images/orange_splash_screen.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_05_orange_splashscreen/main.cpp: -------------------------------------------------------------------------------- 1 | #include "splashscreen.h" 2 | #include "demo.h" 3 | #include 4 | #include 5 | 6 | int main(int argc, char *argv[]) 7 | { 8 | QApplication a(argc, argv); 9 | 10 | SplashScreen::testThis(); // 测试SplashScreen 11 | 12 | Demo d; 13 | d.show(); 14 | 15 | return a.exec(); 16 | } 17 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_05_orange_splashscreen/qt_05_orange_splashscreen.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-12-30T06:49:23.1639978Z 6 | 7 | 8 | 2022-12-30T06:49:23.2304981Z 9 | 10 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_05_orange_splashscreen/splashscreen.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class SplashScreen : public QSplashScreen 6 | { 7 | Q_OBJECT 8 | 9 | public: 10 | SplashScreen( 11 | QPixmap pixmap = QPixmap(), 12 | QWidget *parent = nullptr); 13 | ~SplashScreen(); 14 | 15 | static void testThis(); 16 | 17 | // 0-100 18 | void setProgress(double percent,int barHeight=10.0); 19 | 20 | public slots: 21 | void showMessage(const QString &message, int alignment = Qt::AlignLeft, const QColor &color = Qt::black); 22 | 23 | protected: 24 | void drawContents(QPainter *painter) override; 25 | 26 | private: 27 | QRect m_tRect; 28 | 29 | QString m_strMsg; 30 | QColor m_tTextColor; 31 | int m_nTextAlign; 32 | 33 | double m_dPercent; 34 | int m_dBarHeight; 35 | }; 36 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_06_mdi_area/demo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "ui_demo.h" 5 | 6 | class Demo : public QMainWindow 7 | { 8 | Q_OBJECT 9 | 10 | public: 11 | Demo(QWidget *parent = Q_NULLPTR); 12 | 13 | private: 14 | Ui::DemoClass ui; 15 | private slots: 16 | void on_action_triggered(); 17 | void on_action_2_triggered(); 18 | void on_action_3_triggered(); 19 | void on_action_4_triggered(); 20 | void on_action_5_triggered(); 21 | void on_action_6_triggered(); 22 | void on_action_7_triggered(); 23 | void on_action_8_triggered(bool checked); 24 | void on_action_9_triggered(); 25 | void on_action_10_triggered(); 26 | 27 | void on_mdiArea_subWindowActivated(QMdiSubWindow *window); 28 | }; 29 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_06_mdi_area/demo.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | exit.svg 4 | 5 | 6 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_06_mdi_area/main.cpp: -------------------------------------------------------------------------------- 1 | #include "demo.h" 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | Demo w; 8 | w.show(); 9 | return a.exec(); 10 | } 11 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_06_mdi_area/myplaineditor.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "ui_myplaineditor.h" 5 | 6 | class MyPlainEditor : public QWidget 7 | { 8 | Q_OBJECT 9 | 10 | public: 11 | MyPlainEditor(QWidget *parent = Q_NULLPTR); 12 | ~MyPlainEditor(); 13 | 14 | void loadFile(QString &fileName); 15 | bool isFileOpened(); // 当前是否有文件已经打开 16 | 17 | void setEditFont(); 18 | void textCut(); 19 | void textCopy(); 20 | void textPaste(); 21 | private: 22 | Ui::MyPlainEditor ui; 23 | QString mCurFileName; 24 | bool mFileOpened = false; 25 | }; 26 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_06_mdi_area/myplaineditor.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | MyPlainEditor 4 | 5 | 6 | 7 | 0 8 | 0 9 | 676 10 | 527 11 | 12 | 13 | 14 | MyPlainEditor 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_6/qt_06_mdi_area/qt_06_mdi_area.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-12-31T02:23:19.5803467Z 6 | 7 | 8 | 2022-12-31T02:23:19.6768452Z 9 | 10 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_7/images/love.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_7/images/love.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_7/qt_00_basic/main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_7/qt_00_basic/main.cpp -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_7/qt_00_basic/mypushbutton.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_7/qt_00_basic/mypushbutton.cpp -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_7/qt_00_basic/mypushbutton.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_7/qt_00_basic/mypushbutton.h -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_7/qt_00_basic/mystyle.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_7/qt_00_basic/mystyle.cpp -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_7/qt_00_basic/mystyle.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_7/qt_00_basic/mystyle.h -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_7/qt_01_keyboard_input/main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_7/qt_01_keyboard_input/main.cpp -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_7/qt_02_comboBox/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | #include 5 | 6 | int main(int argc, char *argv[]) 7 | { 8 | QApplication a(argc, argv); 9 | 10 | QWidget mw; 11 | QComboBox* cb = new QComboBox(&mw); 12 | cb->addItems({ "China","USA","Russia" }); 13 | 14 | QFontComboBox* fcb = new QFontComboBox(&mw); 15 | fcb->move(100, 100); 16 | 17 | mw.show(); 18 | 19 | return a.exec(); 20 | } 21 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_7/qt_04_slider/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | 8 | int main(int argc, char *argv[]) 9 | { 10 | QApplication a(argc, argv); 11 | 12 | /** QDial */ 13 | QDial* dial = new QDial; 14 | dial->show(); 15 | 16 | /** QScrollBar */ 17 | QScrollBar* sb = new QScrollBar; 18 | sb->show(); 19 | 20 | QScrollBar* hsb = new QScrollBar(Qt::Horizontal); 21 | hsb->show(); 22 | 23 | /** QSlider */ 24 | QSlider* slider = new QSlider(Qt::Horizontal); 25 | slider->show(); 26 | 27 | 28 | return a.exec(); 29 | } 30 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_7/qt_05_spinbox/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | 8 | int main(int argc, char *argv[]) 9 | { 10 | QApplication a(argc, argv); 11 | 12 | 13 | QWidget * mw = new QWidget; 14 | 15 | /** QDateTimeEdit */ 16 | QDateTimeEdit *dateTimeEdit = new QDateTimeEdit(QDateTime::currentDateTime(), mw); 17 | dateTimeEdit->setMinimumDate(QDate::currentDate().addDays(-365)); 18 | dateTimeEdit->setMaximumDate(QDate::currentDate().addDays(365)); 19 | dateTimeEdit->setDisplayFormat("yyyy.MM.dd"); 20 | 21 | /** QDateEdit */ 22 | QDateEdit* dateEdit = new QDateEdit(QDate::currentDate(), mw); 23 | dateEdit->move(100, 100); 24 | 25 | /** QTimeEdit */ 26 | QTimeEdit* timeEdit = new QTimeEdit(QTime::currentTime(), mw); 27 | timeEdit->move(200, 100); 28 | 29 | /** QDoubleSpinBox */ 30 | QDoubleSpinBox* dsb = new QDoubleSpinBox(mw); 31 | dsb->move(100, 200); 32 | 33 | /** QSpinBox */ 34 | QSpinBox* sb = new QSpinBox(mw); 35 | sb->move(200, 200); 36 | 37 | mw->show(); 38 | 39 | return a.exec(); 40 | } 41 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_7/qt_06_frame/main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_7/qt_06_frame/main.cpp -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_00_basic/lxqmainwindow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class QGraphicsView; 6 | class QGraphicsScene; 7 | 8 | class lxQMainWindow : public QMainWindow 9 | { 10 | Q_OBJECT 11 | 12 | public: 13 | lxQMainWindow(QWidget *parent = nullptr); 14 | ~lxQMainWindow(); 15 | 16 | protected: 17 | void mouseDoubleClickEvent(QMouseEvent *event) override; 18 | 19 | private: 20 | void initQSS(); 21 | 22 | QGraphicsView* m_pGraphicsView; 23 | QGraphicsScene* m_pGraphisScene; 24 | }; 25 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_00_basic/main.cpp: -------------------------------------------------------------------------------- 1 | #include "lxqmainwindow.h" 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | 8 | lxQMainWindow mw; 9 | mw.show(); 10 | 11 | return a.exec(); 12 | } 13 | 14 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_01_basic/lxqmainwindow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class QPushButton; 6 | class QComboBox; 7 | class QGraphicsView; 8 | class QGraphicsScene; 9 | 10 | class lxQMainWindow : public QMainWindow 11 | { 12 | Q_OBJECT 13 | 14 | public: 15 | lxQMainWindow(QWidget *parent = nullptr); 16 | ~lxQMainWindow(); 17 | 18 | protected: 19 | void mouseDoubleClickEvent(QMouseEvent *event) override; 20 | 21 | private: 22 | void initQSS(); 23 | 24 | QGraphicsView* m_pGraphicsView; 25 | QList m_listGraphicsScene; 26 | 27 | QPushButton* m_pAddViewBtn; 28 | QPushButton* m_pAddSceneBtn; 29 | QPushButton* m_pClearItemBtn; 30 | QComboBox* m_pSwitchSceneBtn; 31 | 32 | 33 | private slots: 34 | void slot_toolBtn_handle(int data); 35 | }; 36 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_01_basic/main.cpp: -------------------------------------------------------------------------------- 1 | #include "lxqmainwindow.h" 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | 8 | lxQMainWindow mw; 9 | mw.show(); 10 | 11 | return a.exec(); 12 | } 13 | 14 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_01_basic/main.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_01_basic/main.exe -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_02_basic/lxqmainwindow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | class QPushButton; 7 | class QComboBox; 8 | class QGraphicsView; 9 | class QGraphicsScene; 10 | class QDialog; 11 | class QFormLayout; 12 | 13 | 14 | class lxQMainWindow : public QMainWindow 15 | { 16 | Q_OBJECT 17 | 18 | public: 19 | lxQMainWindow(QWidget *parent = nullptr); 20 | ~lxQMainWindow(); 21 | 22 | private: 23 | void initQSS(); 24 | void initItemTypeComboBox(); 25 | void initConfigPanel(); 26 | void resetConfigPanel(); 27 | 28 | bool eventFilter(QObject *watched, QEvent *event) override; 29 | 30 | QGraphicsView* m_pGraphicsView; 31 | QGraphicsScene* m_pGraphicsScene; 32 | 33 | QPushButton* m_pAddItemBtn; 34 | QPushButton* m_pClearSceneBtn; 35 | QComboBox* m_pItemTypeBtn; 36 | 37 | QDialog* m_pConfigPanel; 38 | QFormLayout* m_pFormLayout; 39 | QWidget* m_pCollectPointPanel; 40 | QVector m_vPoints; 41 | QPainterPath m_tPainterPath; 42 | 43 | private slots: 44 | void slot_toolBtn_handle(int data); 45 | }; 46 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_02_basic/main.cpp: -------------------------------------------------------------------------------- 1 | #include "lxqmainwindow.h" 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | 8 | lxQMainWindow mw; 9 | mw.show(); 10 | 11 | return a.exec(); 12 | } 13 | 14 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_03_custom_view/lxqgraphicsview.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class lxQGraphicsView : public QGraphicsView 6 | { 7 | Q_OBJECT 8 | public: 9 | lxQGraphicsView(QWidget *parent = nullptr); 10 | 11 | protected: 12 | void keyPressEvent(QKeyEvent *event) override; 13 | void keyReleaseEvent(QKeyEvent *event) override; 14 | void wheelEvent(QWheelEvent *event) override; 15 | 16 | private: 17 | 18 | bool m_bCtrl = false; 19 | 20 | /** 视图缩放操作 */ 21 | void scaleView(qreal scaleFactor); 22 | void translateViewY(qreal dy); 23 | }; 24 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_03_custom_view/lxqmainwindow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class lxQGraphicsView; 6 | class QGraphicsScene; 7 | 8 | class lxQMainWindow : public QMainWindow 9 | { 10 | Q_OBJECT 11 | 12 | public: 13 | lxQMainWindow(QWidget *parent = nullptr); 14 | ~lxQMainWindow(); 15 | 16 | protected: 17 | void mouseDoubleClickEvent(QMouseEvent *event) override; 18 | 19 | private: 20 | void initQSS(); 21 | 22 | lxQGraphicsView* m_pGraphicsView; 23 | QGraphicsScene* m_pGraphisScene; 24 | }; 25 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_03_custom_view/main.cpp: -------------------------------------------------------------------------------- 1 | #include "lxqmainwindow.h" 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | 8 | lxQMainWindow mw; 9 | mw.show(); 10 | 11 | return a.exec(); 12 | } 13 | 14 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_04_custom_item/lxqgraphicsitem.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | // lxQGraphicsPixmapItem 6 | class lxQGraphicsPixmapItem : public QGraphicsItem 7 | { 8 | public: 9 | lxQGraphicsPixmapItem(const QPixmap &pixmap, QGraphicsItem *parent = nullptr); 10 | 11 | QGraphicsItem * duplicate(); 12 | QRectF boundingRect() const override; 13 | 14 | protected: 15 | void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override; 16 | void mousePressEvent(QGraphicsSceneMouseEvent *event) override; 17 | 18 | QPixmap m_tPixmap; 19 | }; -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_04_custom_item/lxqgraphicsview.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class lxQGraphicsView : public QGraphicsView 6 | { 7 | Q_OBJECT 8 | public: 9 | lxQGraphicsView(QWidget *parent = nullptr); 10 | 11 | protected: 12 | void keyPressEvent(QKeyEvent *event) override; 13 | void keyReleaseEvent(QKeyEvent *event) override; 14 | void wheelEvent(QWheelEvent *event) override; 15 | 16 | private: 17 | 18 | bool m_bCtrl = false; 19 | 20 | /** 视图缩放操作 */ 21 | void scaleView(qreal scaleFactor); 22 | void translateViewY(qreal dy); 23 | }; 24 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_04_custom_item/lxqmainwindow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class lxQGraphicsView; 6 | class QGraphicsScene; 7 | 8 | class lxQMainWindow : public QMainWindow 9 | { 10 | Q_OBJECT 11 | 12 | public: 13 | lxQMainWindow(QWidget *parent = nullptr); 14 | ~lxQMainWindow(); 15 | 16 | protected: 17 | void mouseDoubleClickEvent(QMouseEvent *event) override; 18 | 19 | private: 20 | void initQSS(); 21 | 22 | lxQGraphicsView* m_pGraphicsView; 23 | QGraphicsScene* m_pGraphisScene; 24 | }; 25 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_04_custom_item/main.cpp: -------------------------------------------------------------------------------- 1 | #include "lxqmainwindow.h" 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | 8 | lxQMainWindow mw; 9 | mw.show(); 10 | 11 | return a.exec(); 12 | } 13 | 14 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_05_custom_scene/lxqgraphicsitem.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | class lxQGraphicsMimeData :public QMimeData 7 | { 8 | Q_OBJECT 9 | public: 10 | lxQGraphicsMimeData(QList items); 11 | ~lxQGraphicsMimeData(); 12 | QList getItems() const; 13 | 14 | private: 15 | QList m_listItem; 16 | }; 17 | 18 | // lxQGraphicsPixmapItem 19 | class lxQGraphicsPixmapItem : public QGraphicsItem 20 | { 21 | public: 22 | lxQGraphicsPixmapItem(const QPixmap &pixmap, QGraphicsItem *parent = nullptr); 23 | 24 | QGraphicsItem * duplicate(); 25 | QRectF boundingRect() const override; 26 | 27 | protected: 28 | void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override; 29 | void mousePressEvent(QGraphicsSceneMouseEvent *event) override; 30 | 31 | QPixmap m_tPixmap; 32 | }; -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_05_custom_scene/lxqgraphicsscene.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | class lxQGraphicsScene : public QGraphicsScene 7 | { 8 | Q_OBJECT 9 | public: 10 | lxQGraphicsScene(const QRectF &sceneRect, QObject *parent = nullptr); 11 | 12 | protected: 13 | void drawBackground(QPainter *painter, const QRectF &rect) override; 14 | 15 | private: 16 | void deleteSelectedItems(); 17 | void copySelectedItem(); 18 | void pasteItem(); 19 | 20 | void keyPressEvent(QKeyEvent *event) override; 21 | }; 22 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_05_custom_scene/lxqgraphicsview.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class lxQGraphicsView : public QGraphicsView 6 | { 7 | Q_OBJECT 8 | public: 9 | lxQGraphicsView(QWidget *parent = nullptr); 10 | 11 | protected: 12 | void keyPressEvent(QKeyEvent *event) override; 13 | void keyReleaseEvent(QKeyEvent *event) override; 14 | void wheelEvent(QWheelEvent *event) override; 15 | 16 | private: 17 | 18 | bool m_bCtrl = false; 19 | 20 | /** 视图缩放操作 */ 21 | void scaleView(qreal scaleFactor); 22 | void translateViewY(qreal dy); 23 | }; 24 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_05_custom_scene/lxqmainwindow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class lxQGraphicsView; 6 | class lxQGraphicsScene; 7 | 8 | class lxQMainWindow : public QMainWindow 9 | { 10 | Q_OBJECT 11 | 12 | public: 13 | lxQMainWindow(QWidget *parent = nullptr); 14 | ~lxQMainWindow(); 15 | 16 | protected: 17 | void mouseDoubleClickEvent(QMouseEvent *event) override; 18 | 19 | private: 20 | void initQSS(); 21 | 22 | lxQGraphicsView* m_pGraphicsView; 23 | lxQGraphicsScene* m_pGraphisScene; 24 | }; 25 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_05_custom_scene/main.cpp: -------------------------------------------------------------------------------- 1 | #include "lxqmainwindow.h" 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | 8 | lxQMainWindow mw; 9 | mw.show(); 10 | 11 | return a.exec(); 12 | } 13 | 14 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_06_drag_drop_node/Resource.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | images/move.png 4 | 5 | 6 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_06_drag_drop_node/common.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | static int gn_vizItemTypeRole = Qt::UserRole + 1; 4 | 5 | enum lxQVizItemType 6 | { 7 | Start, 8 | CheckDI, 9 | WaitDI, 10 | SetDO, 11 | RelMove, 12 | Move, 13 | }; 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_06_drag_drop_node/images/move.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_06_drag_drop_node/images/move.png -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_06_drag_drop_node/lxqdragdropwidget.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include "ui_lxdragdropwidget.h" 7 | 8 | 9 | class lxQDragDropWidget : public QWidget 10 | { 11 | Q_OBJECT 12 | 13 | public: 14 | lxQDragDropWidget(QWidget *parent = Q_NULLPTR); 15 | ~lxQDragDropWidget(); 16 | 17 | private slots: 18 | 19 | 20 | void slot_itemAdded(QGraphicsItem *item, QGraphicsScene *scene); 21 | void slot_itemMoved(QGraphicsScene* scene, const QPointF& offset); 22 | void slot_itemDelete(); 23 | 24 | 25 | private: 26 | Ui::LxDragDropWidget ui; 27 | 28 | // action 29 | QAction* mpDeleteAct; 30 | QAction* mpRedoAct; 31 | QAction* mpUndoAct; 32 | 33 | 34 | 35 | QUndoStack* mpUndoStack; 36 | 37 | 38 | }; 39 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_06_drag_drop_node/lxqgraphicsscene.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class lxQGraphicsScene : public QGraphicsScene 6 | { 7 | Q_OBJECT 8 | 9 | public: 10 | lxQGraphicsScene(QObject *parent=nullptr); 11 | ~lxQGraphicsScene(); 12 | 13 | protected: 14 | void drawBackground(QPainter *painter, const QRectF &rect) override; 15 | 16 | void mousePressEvent(QGraphicsSceneMouseEvent *event) override; 17 | void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override; 18 | void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override; 19 | 20 | signals: 21 | void signal_itemMoved(QGraphicsScene*scene,const QPointF &offset); 22 | 23 | private: 24 | QPointF m_tOldPos; 25 | QPointF m_tNewPos; 26 | 27 | }; 28 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_06_drag_drop_node/lxqgraphicsview.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class lxQGraphicsScene; 6 | 7 | class lxQGraphicsView : public QGraphicsView 8 | { 9 | Q_OBJECT 10 | 11 | public: 12 | lxQGraphicsView(QWidget *parent); 13 | ~lxQGraphicsView(); 14 | 15 | 16 | lxQGraphicsScene* m_pScene; 17 | 18 | protected: 19 | void dragEnterEvent(QDragEnterEvent *event) override; 20 | void dragMoveEvent(QDragMoveEvent *event) override; 21 | void dropEvent(QDropEvent *event) override; 22 | 23 | void keyPressEvent(QKeyEvent *event) override; 24 | void keyReleaseEvent(QKeyEvent *event) override; 25 | void wheelEvent(QWheelEvent *event) override; 26 | 27 | void mousePressEvent(QMouseEvent *event) override; 28 | 29 | signals: 30 | void signal_itemAdded(QGraphicsItem *item, QGraphicsScene *scene); 31 | 32 | private: 33 | void scaleView(qreal scaleFactor); 34 | void translateViewY(qreal dy); 35 | 36 | bool mb_ctrl = false; 37 | }; 38 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_06_drag_drop_node/lxqtreewidget.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class lxQTreeWidget : public QTreeWidget 6 | { 7 | Q_OBJECT 8 | 9 | public: 10 | lxQTreeWidget(QWidget *parent); 11 | ~lxQTreeWidget(); 12 | protected: 13 | void mouseMoveEvent(QMouseEvent *event) override; 14 | 15 | private: 16 | void addItem(); 17 | }; 18 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_06_drag_drop_node/lxqundoview.cpp: -------------------------------------------------------------------------------- 1 | #include "lxqundoview.h" 2 | #include 3 | #include 4 | 5 | lxQUndoView::lxQUndoView(QWidget *parent) 6 | :QUndoView(parent) 7 | { 8 | //setStyleSheet("background-color:rgb(38,38,38);\nborder:no border;"); 9 | } 10 | 11 | lxQUndoView::~lxQUndoView() 12 | { 13 | 14 | } 15 | 16 | void lxQUndoView::mousePressEvent(QMouseEvent *event) 17 | { 18 | event->accept(); ///< 重写鼠标事件 使鼠标事件不往下传递 以达到不能通过鼠标来触发redo/undo的目的 19 | } 20 | 21 | void lxQUndoView::mouseMoveEvent(QMouseEvent *event) 22 | { 23 | event->accept(); ///< 重写鼠标事件 使鼠标事件不往下传递 以达到不能通过鼠标来触发redo/undo的目的 24 | } 25 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_06_drag_drop_node/lxqundoview.h: -------------------------------------------------------------------------------- 1 | #ifndef LX_QUNDOVIEW_H 2 | #define LX_QUNDOVIEW_H 3 | 4 | #include 5 | 6 | class lxQUndoView :public QUndoView 7 | { 8 | Q_OBJECT 9 | public: 10 | lxQUndoView(QWidget *parent = nullptr); 11 | ~lxQUndoView(); 12 | 13 | protected: 14 | void mousePressEvent(QMouseEvent *event) override; 15 | void mouseMoveEvent(QMouseEvent *event) override; 16 | 17 | private: 18 | 19 | }; 20 | 21 | 22 | #endif 23 | 24 | 25 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qgraphicsview_06_drag_drop_node/main.cpp: -------------------------------------------------------------------------------- 1 | #include "lxqdragdropwidget.h" 2 | 3 | #include 4 | 5 | int main(int argc, char *argv[]) 6 | { 7 | 8 | QApplication a(argc, argv); 9 | 10 | lxQDragDropWidget w; 11 | w.show(); 12 | 13 | 14 | return a.exec(); 15 | } 16 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qt_coord/lxqcircle.cpp: -------------------------------------------------------------------------------- 1 | #include "lxqcircle.h" 2 | 3 | #include 4 | 5 | lxQCircle::lxQCircle(QWidget *parent) 6 | : QWidget(parent) 7 | { 8 | setFixedSize(200, 200); 9 | } 10 | 11 | void lxQCircle::paintEvent(QPaintEvent *event) 12 | { 13 | QPainter painter(this); 14 | QPen pen; 15 | pen.setCosmetic(true); 16 | painter.setPen(pen); 17 | 18 | painter.setWindow(-10, -10, 20, 20); 19 | painter.drawEllipse(0, 0, 10, 10); 20 | } 21 | 22 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qt_coord/lxqcircle.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class lxQCircle : public QWidget 6 | { 7 | Q_OBJECT 8 | 9 | public: 10 | lxQCircle(QWidget *parent = nullptr); 11 | 12 | protected: 13 | void paintEvent(QPaintEvent *event) override; 14 | }; 15 | 16 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qt_coord/main.cpp: -------------------------------------------------------------------------------- 1 | #include "lxqcircle.h" 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | 8 | lxQCircle circle; 9 | circle.show(); 10 | 11 | return a.exec(); 12 | } 13 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qtpropertybrowser_01_custom_manager/main.cpp: -------------------------------------------------------------------------------- 1 | #include "qttreepropertybrowser.h" 2 | #include "qteditorfactory.h" 3 | #include "lxqtpropertymanager.h" 4 | 5 | #include 6 | 7 | int main(int argc, char **argv) 8 | { 9 | QApplication app(argc, argv); 10 | 11 | // browser 12 | QtTreePropertyBrowser* browser = new QtTreePropertyBrowser; 13 | browser->setAlternatingRowColors(false); 14 | 15 | // manager 16 | QtGroupPropertyManager *groupMng = new QtGroupPropertyManager(browser); 17 | lxQtSpacePointManager *spacePointMng = new lxQtSpacePointManager(browser); 18 | 19 | // property 20 | QtProperty *groupProp = groupMng->addProperty("Group"); 21 | QtProperty *sp1 = spacePointMng->addProperty("SP1"); 22 | QtProperty *sp2 = spacePointMng->addProperty("SP2"); 23 | 24 | groupProp->addSubProperty(sp1); 25 | groupProp->addSubProperty(sp2); 26 | 27 | // factory 28 | auto doubleFactory = new QtDoubleSpinBoxFactory(browser); 29 | browser->setFactoryForManager(spacePointMng->subDoublePropertyManager(), doubleFactory); 30 | 31 | // browser 32 | browser->addProperty(groupProp); 33 | browser->show(); 34 | 35 | return app.exec(); 36 | } 37 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qtpropertybrowser_02_custom_factory/lxqtpropertyvalidator.cpp: -------------------------------------------------------------------------------- 1 | #include "lxqtpropertyvalidator.h" 2 | 3 | #include 4 | 5 | // lxQtRegexValidator 6 | lxQtRegexValidator::lxQtRegexValidator(QString regex, QObject* parent /*= nullptr*/) 7 | :m_strRegex(regex),lxQtAbstractValidator(parent) 8 | { 9 | m_tRegValidator = new QRegExpValidator(QRegExp(regex), this); 10 | } 11 | bool lxQtRegexValidator::validate(QVariant data) 12 | { 13 | QString strData = data.toString(); 14 | int pos = 0; 15 | 16 | return m_tRegValidator->validate(strData,pos) == QValidator::Acceptable; 17 | } 18 | 19 | // lxQtMinValueValidator 20 | lxQtMinValueValidator::lxQtMinValueValidator(double minValue, QObject* parent /*= nullptr*/) 21 | :m_dMinValue(minValue),lxQtAbstractValidator(parent) 22 | { 23 | } 24 | 25 | bool lxQtMinValueValidator::validate(QVariant data) 26 | { 27 | return data.toDouble() >= m_dMinValue; 28 | } 29 | 30 | // lxQtMaxValueValidator 31 | lxQtMaxValueValidator::lxQtMaxValueValidator(double maxValue, QObject* parent /*= nullptr*/) 32 | :m_dMaxValue(maxValue),lxQtAbstractValidator(parent) 33 | { 34 | } 35 | 36 | bool lxQtMaxValueValidator::validate(QVariant data) 37 | { 38 | return data.toDouble() <= m_dMaxValue; 39 | } 40 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/01c++/qt_GSGU_2_9-0/qtpropertybrowser_02_custom_factory/lxqtpropertyvalidator.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | class lxQtAbstractValidator:public QObject 6 | { 7 | Q_OBJECT 8 | public: 9 | virtual bool validate(QVariant data) = 0; 10 | protected: 11 | explicit lxQtAbstractValidator(QObject* parent=nullptr) {} 12 | }; 13 | 14 | class lxQtRegexValidator :public lxQtAbstractValidator 15 | { 16 | public: 17 | explicit lxQtRegexValidator(QString regex, QObject* parent = nullptr); 18 | bool validate(QVariant data) override; 19 | private: 20 | QString m_strRegex; 21 | QRegExpValidator* m_tRegValidator; 22 | }; 23 | 24 | class lxQtMinValueValidator :public lxQtAbstractValidator 25 | { 26 | public: 27 | explicit lxQtMinValueValidator(double minValue, QObject* parent = nullptr); 28 | bool validate(QVariant data) override; 29 | private: 30 | double m_dMinValue; 31 | }; 32 | 33 | class lxQtMaxValueValidator :public lxQtAbstractValidator 34 | { 35 | public: 36 | explicit lxQtMaxValueValidator(double maxValue, QObject* parent = nullptr); 37 | bool validate(QVariant data) override; 38 | private: 39 | double m_dMaxValue; 40 | }; 41 | -------------------------------------------------------------------------------- /qt_GSGU/第二章 Widgets体系/02python/qt_GSGU_2_1/qtnamespace/main.py: -------------------------------------------------------------------------------- 1 | from PyQt5.QtCore import QDate, Qt 2 | 3 | 4 | def printCurDate(format): 5 | print(QDate.currentDate().toString(format)) 6 | 7 | 8 | if __name__ == '__main__': 9 | printCurDate(Qt.ISODate) 10 | printCurDate(Qt.LocalDate) 11 | printCurDate(Qt.TextDate) 12 | -------------------------------------------------------------------------------- /qt_project/README.md: -------------------------------------------------------------------------------- 1 | total 0 2 | -rw-r--r-- 1 admin 197121 0 May 13 17:54 README.md 3 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/canvas_typed/canvas_typed.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | DEPENDPATH += . 3 | INCLUDEPATH += . 4 | 5 | include(../qtpropertybrowser/src/qtpropertybrowser.pri) 6 | # Input 7 | HEADERS += qtcanvas.h mainwindow.h 8 | SOURCES += qtcanvas.cpp mainwindow.cpp main.cpp 9 | 10 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/canvas_variant/canvas_variant.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | DEPENDPATH += . 3 | INCLUDEPATH += . 4 | 5 | include(../qtpropertybrowser/src/qtpropertybrowser.pri) 6 | # Input 7 | HEADERS += qtcanvas.h mainwindow.h 8 | SOURCES += qtcanvas.cpp mainwindow.cpp main.cpp 9 | 10 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/decoration/decoration.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | DEPENDPATH += . 3 | INCLUDEPATH += . 4 | 5 | include(../qtpropertybrowser/src/qtpropertybrowser.pri) 6 | # Input 7 | SOURCES += main.cpp \ 8 | mydoublepropertymanager.cpp \ 9 | mydoublespinboxfactory.cpp 10 | 11 | HEADERS += \ 12 | mydoublepropertymanager.h \ 13 | mydoublespinboxfactory.h 14 | 15 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/decoration/mydoublepropertymanager.h: -------------------------------------------------------------------------------- 1 | #ifndef MYDOUBLEPROPERTYMANAGER_H 2 | #define MYDOUBLEPROPERTYMANAGER_H 3 | 4 | #include 5 | 6 | class MyDoublePropertyManager:public QtDoublePropertyManager 7 | { 8 | Q_OBJECT 9 | public: 10 | MyDoublePropertyManager(QObject* parent=nullptr); 11 | ~MyDoublePropertyManager(); 12 | 13 | void setPrefix(QtProperty *property,QString prefix); 14 | void setSuffix(QtProperty *property,QString suffix); 15 | 16 | QString getPrefix(QtProperty *property); 17 | QString getSuffix(QtProperty *property); 18 | 19 | signals: 20 | void prefixChanged(QtProperty* property,QString prefix); 21 | void suffixChanged(QtProperty* property,QString suffix); 22 | 23 | 24 | protected: 25 | void initializeProperty(QtProperty *property) override; 26 | void uninitializeProperty(QtProperty *property) override; 27 | QString valueText(const QtProperty *property) const override; 28 | 29 | private: 30 | struct ElseData 31 | { 32 | QString prefix; 33 | QString suffix; 34 | }; 35 | QMap mMapPropertyAndElseData; 36 | }; 37 | 38 | 39 | #endif // MYDOUBLEPROPERTYMANAGER_H 40 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/decoration/mydoublespinboxfactory.h: -------------------------------------------------------------------------------- 1 | #ifndef MYDOUBLESPINBOXFACTORY_H 2 | #define MYDOUBLESPINBOXFACTORY_H 3 | 4 | #include "mydoublepropertymanager.h" 5 | #include 6 | #include 7 | 8 | class MyDoubleSpinBoxFactory : public QtAbstractEditorFactory 9 | { 10 | public: 11 | MyDoubleSpinBoxFactory(QObject* parent=nullptr); 12 | ~MyDoubleSpinBoxFactory(); 13 | 14 | protected: 15 | void connectPropertyManager(MyDoublePropertyManager *manager) override; 16 | QWidget * createEditor(MyDoublePropertyManager *manager, QtProperty *property, QWidget *parent) override; 17 | void disconnectPropertyManager(MyDoublePropertyManager *manager) override; 18 | 19 | private: 20 | void on_manager_prefixChanged(QtProperty* property,QString prefix); 21 | void on_manager_suffixChanged(QtProperty* property,QString suffix); 22 | void slot_editor_destroyed(QObject* object); 23 | 24 | 25 | private: 26 | QtDoubleSpinBoxFactory* mInnerFactory; 27 | 28 | QMap > mCreatedEditors; 29 | QMap mEditorToProperty; 30 | 31 | }; 32 | 33 | #endif // MYDOUBLESPINBOXFACTORY_H 34 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/demo/demo.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | DEPENDPATH += . 3 | INCLUDEPATH += . 4 | 5 | include(../qtpropertybrowser/src/qtpropertybrowser.pri) 6 | # Input 7 | SOURCES += main.cpp 8 | RESOURCES += demo.qrc 9 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/demo/demo.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | images/up.png 4 | images/down.png 5 | images/right.png 6 | images/left.png 7 | 8 | 9 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/demo/images/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/demo/images/down.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/demo/images/left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/demo/images/left.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/demo/images/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/demo/images/right.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/demo/images/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/demo/images/up.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/demo_use_propertybrowser.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = subdirs 2 | SUBDIRS = \ 3 | # simple \ 4 | # decoration \ 5 | # demo \ 6 | # object_controller \ 7 | # extension \ 8 | # canvas_typed \ 9 | canvas_variant \ 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/extension/extension.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | DEPENDPATH += . 3 | INCLUDEPATH += . 4 | 5 | include(../qtpropertybrowser/src/qtpropertybrowser.pri) 6 | # Input 7 | SOURCES += main.cpp 8 | 9 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/object_controller/object_controller.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | DEPENDPATH += . 3 | INCLUDEPATH += . 4 | 5 | include(../qtpropertybrowser/src/qtpropertybrowser.pri) 6 | # Input 7 | HEADERS += objectcontroller.h 8 | SOURCES += objectcontroller.cpp main.cpp 9 | 10 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/buildlib/buildlib.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE=lib 2 | CONFIG += qt dll qtpropertybrowser-buildlib 3 | mac:CONFIG += absolute_library_soname 4 | win32|mac:!wince*:!win32-msvc:!macx-xcode:CONFIG += debug_and_release build_all 5 | include(../src/qtpropertybrowser.pri) 6 | TARGET = $$QTPROPERTYBROWSER_LIBNAME 7 | DESTDIR = $$QTPROPERTYBROWSER_LIBDIR 8 | win32 { 9 | DLLDESTDIR = $$[QT_INSTALL_BINS] 10 | QMAKE_DISTCLEAN += $$[QT_INSTALL_BINS]\\$${QTPROPERTYBROWSER_LIBNAME}.dll 11 | } 12 | target.path = $$DESTDIR 13 | INSTALLS += target 14 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/common.pri: -------------------------------------------------------------------------------- 1 | exists(config.pri):infile(config.pri, SOLUTIONS_LIBRARY, yes): CONFIG += qtpropertybrowser-uselib 2 | TEMPLATE += fakelib 3 | QTPROPERTYBROWSER_LIBNAME = $$qtLibraryTarget(QtSolutions_PropertyBrowser-head) 4 | TEMPLATE -= fakelib 5 | QTPROPERTYBROWSER_LIBDIR = $$PWD/lib 6 | unix:qtpropertybrowser-uselib:!qtpropertybrowser-buildlib:QMAKE_RPATHDIR += $$QTPROPERTYBROWSER_LIBDIR 7 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/configure: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if [ "x$1" != "x" -a "x$1" != "x-library" ]; then 4 | echo "Usage: $0 [-library]" 5 | echo 6 | echo "-library: Build the component as a dynamic library (DLL). Default is to" 7 | echo " include the component source code directly in the application." 8 | echo 9 | exit 0 10 | fi 11 | 12 | rm -f config.pri 13 | if [ "x$1" = "x-library" ]; then 14 | echo "Configuring to build this component as a dynamic library." 15 | echo "SOLUTIONS_LIBRARY = yes" > config.pri 16 | fi 17 | 18 | echo 19 | echo "This component is now configured." 20 | echo 21 | echo "To build the component library (if requested) and example(s)," 22 | echo "run qmake and your make command." 23 | echo 24 | echo "To remove or reconfigure, run make distclean." 25 | echo 26 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/canvas_typed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/canvas_typed.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/canvas_variant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/canvas_variant.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/decoration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/decoration.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/demo.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/extension.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/extension.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/object_controller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/object_controller.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/qt-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/qt-logo.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/qtbuttonpropertybrowser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/qtbuttonpropertybrowser.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/qtgroupboxpropertybrowser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/qtgroupboxpropertybrowser.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/qtpropertybrowser-duplicate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/qtpropertybrowser-duplicate.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/qtpropertybrowser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/qtpropertybrowser.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/qttreepropertybrowser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/qttreepropertybrowser.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/simple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/html/images/simple.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/canvas_typed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/canvas_typed.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/canvas_variant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/canvas_variant.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/decoration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/decoration.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/demo.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/extension.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/extension.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/object_controller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/object_controller.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/qt-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/qt-logo.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/qtbuttonpropertybrowser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/qtbuttonpropertybrowser.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/qtgroupboxpropertybrowser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/qtgroupboxpropertybrowser.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/qtpropertybrowser-duplicate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/qtpropertybrowser-duplicate.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/qtpropertybrowser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/qtpropertybrowser.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/qttreepropertybrowser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/qttreepropertybrowser.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/simple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/doc/images/simple.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/examples/canvas_typed/canvas_typed.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | DEPENDPATH += . 3 | INCLUDEPATH += . 4 | 5 | include(../../src/qtpropertybrowser.pri) 6 | # Input 7 | HEADERS += qtcanvas.h mainwindow.h 8 | SOURCES += qtcanvas.cpp mainwindow.cpp main.cpp 9 | 10 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/examples/canvas_variant/canvas_variant.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | DEPENDPATH += . 3 | INCLUDEPATH += . 4 | 5 | include(../../src/qtpropertybrowser.pri) 6 | # Input 7 | HEADERS += qtcanvas.h mainwindow.h 8 | SOURCES += qtcanvas.cpp mainwindow.cpp main.cpp 9 | 10 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/examples/decoration/decoration.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | DEPENDPATH += . 3 | INCLUDEPATH += . 4 | 5 | include(../../src/qtpropertybrowser.pri) 6 | # Input 7 | SOURCES += main.cpp 8 | 9 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/examples/demo/demo.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | DEPENDPATH += . 3 | INCLUDEPATH += . 4 | 5 | include(../../src/qtpropertybrowser.pri) 6 | # Input 7 | SOURCES += main.cpp 8 | RESOURCES += demo.qrc 9 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/examples/demo/demo.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | images/up.png 4 | images/down.png 5 | images/right.png 6 | images/left.png 7 | 8 | 9 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/examples/demo/images/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/examples/demo/images/down.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/examples/demo/images/left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/examples/demo/images/left.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/examples/demo/images/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/examples/demo/images/right.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/examples/demo/images/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/examples/demo/images/up.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/examples/examples.pro: -------------------------------------------------------------------------------- 1 | ###################################################################### 2 | # Automatically generated by qmake (2.00a) Wed Jun 15 15:53:34 2005 3 | ###################################################################### 4 | 5 | TEMPLATE = subdirs 6 | SUBDIRS = simple canvas_variant canvas_typed demo decoration extension object_controller 7 | 8 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/examples/extension/extension.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | DEPENDPATH += . 3 | INCLUDEPATH += . 4 | 5 | include(../../src/qtpropertybrowser.pri) 6 | # Input 7 | SOURCES += main.cpp 8 | 9 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/examples/object_controller/object_controller.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | DEPENDPATH += . 3 | INCLUDEPATH += . 4 | 5 | include(../../src/qtpropertybrowser.pri) 6 | # Input 7 | HEADERS += objectcontroller.h 8 | SOURCES += objectcontroller.cpp main.cpp 9 | 10 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/examples/simple/simple.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | DEPENDPATH += . 3 | INCLUDEPATH += . 4 | 5 | include(../../src/qtpropertybrowser.pri) 6 | # Input 7 | SOURCES += main.cpp 8 | 9 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/qtpropertybrowser.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE=subdirs 2 | CONFIG += ordered 3 | include(common.pri) 4 | qtpropertybrowser-uselib:SUBDIRS=buildlib 5 | #SUBDIRS+=examples 6 | message(--------------------> 222222222222222222) 7 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtAbstractEditorFactoryBase: -------------------------------------------------------------------------------- 1 | #include "qtpropertybrowser.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtAbstractPropertyBrowser: -------------------------------------------------------------------------------- 1 | #include "qtpropertybrowser.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtAbstractPropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtpropertybrowser.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtBoolPropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtpropertymanager.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtBrowserItem: -------------------------------------------------------------------------------- 1 | #include "qtpropertybrowser.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtButtonPropertyBrowser: -------------------------------------------------------------------------------- 1 | #include "qtbuttonpropertybrowser.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtCharEditorFactory: -------------------------------------------------------------------------------- 1 | #include "qteditorfactory.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtCharPropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtpropertymanager.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtCheckBoxFactory: -------------------------------------------------------------------------------- 1 | #include "qteditorfactory.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtColorEditorFactory: -------------------------------------------------------------------------------- 1 | #include "qteditorfactory.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtColorPropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtpropertymanager.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtCursorEditorFactory: -------------------------------------------------------------------------------- 1 | #include "qteditorfactory.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtCursorPropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtpropertymanager.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtDateEditFactory: -------------------------------------------------------------------------------- 1 | #include "qteditorfactory.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtDatePropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtpropertymanager.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtDateTimeEditFactory: -------------------------------------------------------------------------------- 1 | #include "qteditorfactory.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtDateTimePropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtpropertymanager.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtDoublePropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtpropertymanager.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtDoubleSpinBoxFactory: -------------------------------------------------------------------------------- 1 | #include "qteditorfactory.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtEnumEditorFactory: -------------------------------------------------------------------------------- 1 | #include "qteditorfactory.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtEnumPropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtpropertymanager.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtFlagPropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtpropertymanager.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtFontEditorFactory: -------------------------------------------------------------------------------- 1 | #include "qteditorfactory.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtFontPropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtpropertymanager.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtGroupBoxPropertyBrowser: -------------------------------------------------------------------------------- 1 | #include "qtgroupboxpropertybrowser.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtGroupPropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtpropertymanager.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtIntPropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtpropertymanager.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtKeySequenceEditorFactory: -------------------------------------------------------------------------------- 1 | #include "qteditorfactory.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtKeySequencePropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtpropertymanager.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtLineEditFactory: -------------------------------------------------------------------------------- 1 | #include "qteditorfactory.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtLocalePropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtpropertymanager.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtPointFPropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtpropertymanager.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtPointPropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtpropertymanager.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtProperty: -------------------------------------------------------------------------------- 1 | #include "qtpropertybrowser.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtRectFPropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtpropertymanager.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtRectPropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtpropertymanager.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtScrollBarFactory: -------------------------------------------------------------------------------- 1 | #include "qteditorfactory.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtSizeFPropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtpropertymanager.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtSizePolicyPropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtpropertymanager.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtSizePropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtpropertymanager.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtSliderFactory: -------------------------------------------------------------------------------- 1 | #include "qteditorfactory.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtSpinBoxFactory: -------------------------------------------------------------------------------- 1 | #include "qteditorfactory.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtStringPropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtpropertymanager.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtTimeEditFactory: -------------------------------------------------------------------------------- 1 | #include "qteditorfactory.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtTimePropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtpropertymanager.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtTreePropertyBrowser: -------------------------------------------------------------------------------- 1 | #include "qttreepropertybrowser.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtVariantEditorFactory: -------------------------------------------------------------------------------- 1 | #include "qtvariantproperty.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtVariantProperty: -------------------------------------------------------------------------------- 1 | #include "qtvariantproperty.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/QtVariantPropertyManager: -------------------------------------------------------------------------------- 1 | #include "qtvariantproperty.h" 2 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-arrow.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-busy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-busy.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-closedhand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-closedhand.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-cross.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-cross.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-forbidden.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-forbidden.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-hand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-hand.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-hsplit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-hsplit.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-ibeam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-ibeam.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-openhand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-openhand.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-sizeall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-sizeall.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-sizeb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-sizeb.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-sizef.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-sizef.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-sizeh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-sizeh.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-sizev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-sizev.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-uparrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-uparrow.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-vsplit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-vsplit.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-wait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-wait.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-whatsthis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/qtpropertybrowser/src/images/cursor-whatsthis.png -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/qtpropertybrowser/src/qtpropertybrowser.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | images/cursor-arrow.png 4 | images/cursor-busy.png 5 | images/cursor-closedhand.png 6 | images/cursor-cross.png 7 | images/cursor-forbidden.png 8 | images/cursor-hand.png 9 | images/cursor-hsplit.png 10 | images/cursor-ibeam.png 11 | images/cursor-openhand.png 12 | images/cursor-sizeall.png 13 | images/cursor-sizeb.png 14 | images/cursor-sizef.png 15 | images/cursor-sizeh.png 16 | images/cursor-sizev.png 17 | images/cursor-uparrow.png 18 | images/cursor-vsplit.png 19 | images/cursor-wait.png 20 | images/cursor-whatsthis.png 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/simple/cn.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zzzcb/qt/71d35856c880710bf23ec82b4827450331f2e035/qt_project/demo_use_propertybrowser/simple/cn.qm -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/simple/simple.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | DEPENDPATH += . 3 | INCLUDEPATH += . 4 | 5 | include(../qtpropertybrowser/src/qtpropertybrowser.pri) 6 | # Input 7 | SOURCES += main.cpp 8 | 9 | TRANSLATIONS += cn.ts 10 | 11 | DISTFILES += \ 12 | cn.ts 13 | 14 | RESOURCES += \ 15 | simple.qrc 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /qt_project/demo_use_propertybrowser/simple/simple.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | cn.qm 4 | 5 | 6 | -------------------------------------------------------------------------------- /qt_project/flow_layout_and_sizehint/flow_layout/flow_layout.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-11-24T03:34:29.1672896Z 6 | 7 | 8 | 2022-11-24T03:34:29.2867894Z 9 | 10 | -------------------------------------------------------------------------------- /qt_project/flow_layout_and_sizehint/flow_layout/main.cpp: -------------------------------------------------------------------------------- 1 | #include "mywidget.h" 2 | #include 3 | 4 | 5 | int main(int argc, char *argv[]) 6 | { 7 | QApplication a(argc, argv); 8 | MyWidget w; 9 | w.show(); 10 | return a.exec(); 11 | } 12 | -------------------------------------------------------------------------------- /qt_project/flow_layout_and_sizehint/flow_layout/mywidget.cpp: -------------------------------------------------------------------------------- 1 | #include "mywidget.h" 2 | 3 | #include 4 | #include 5 | 6 | #include "flowlayout.h" 7 | #include 8 | 9 | MyWidget::MyWidget(QWidget*parent) 10 | :QWidget(parent) 11 | { 12 | QVBoxLayout *mainLayout = new QVBoxLayout(this); 13 | 14 | QScrollArea *scrollArea = new QScrollArea; 15 | scrollArea->setWidgetResizable(true); // very important 16 | 17 | QWidget* childW = new QWidget; 18 | m_pFlowLayout = new FlowLayout(childW); 19 | m_pFlowLayout->addWidget(new QPushButton); 20 | m_pFlowLayout->addWidget(new QPushButton); 21 | m_pFlowLayout->addWidget(new QPushButton); 22 | childW->setLayout(m_pFlowLayout); 23 | 24 | scrollArea->setWidget(childW); 25 | 26 | auto btn = new QPushButton("add new green"); 27 | mainLayout->addWidget(btn); 28 | mainLayout->addWidget(scrollArea); 29 | 30 | connect(btn, &QPushButton::clicked, this, &MyWidget::slot_addBtn); 31 | } 32 | 33 | void MyWidget::slot_addBtn() 34 | { 35 | m_pFlowLayout->addWidget(new GreenWidget); 36 | } 37 | -------------------------------------------------------------------------------- /qt_project/flow_layout_and_sizehint/flow_layout/mywidget.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class FlowLayout; 6 | 7 | class GreenWidget :public QWidget 8 | { 9 | public: 10 | GreenWidget(QWidget* parent = nullptr) 11 | :QWidget(parent) 12 | { 13 | setStyleSheet("background:green;"); 14 | setFixedSize(50, 50); 15 | } 16 | }; 17 | 18 | class MyWidget : public QWidget 19 | { 20 | Q_OBJECT 21 | 22 | public: 23 | MyWidget(QWidget*parent=nullptr); 24 | 25 | private slots: 26 | void slot_addBtn(); 27 | 28 | private: 29 | FlowLayout* m_pFlowLayout; 30 | }; 31 | 32 | -------------------------------------------------------------------------------- /qt_project/flow_layout_and_sizehint/sizehint_minimumsizehint/demo.cpp: -------------------------------------------------------------------------------- 1 | #include "demo.h" 2 | 3 | #include 4 | 5 | Demo::Demo(QWidget *parent) 6 | : QWidget(parent) 7 | { 8 | QHBoxLayout* hLayout = new QHBoxLayout(this); 9 | hLayout->addWidget(new MyWidget); 10 | hLayout->addWidget(new MyWidget); 11 | 12 | setLayout(hLayout); 13 | } 14 | 15 | Demo::~Demo() 16 | {} 17 | -------------------------------------------------------------------------------- /qt_project/flow_layout_and_sizehint/sizehint_minimumsizehint/demo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | 6 | class MyWidget :public QWidget 7 | { 8 | public: 9 | MyWidget(QWidget* parent = nullptr) 10 | :QWidget(parent) 11 | { 12 | setStyleSheet("background:green;"); 13 | } 14 | // sizeHint vs minimumSizeHint 15 | // When the widget is created the system uses sizeHint for how to big to make at start. 16 | // When the widget is resized(by layout, by user dragging) the minimumSizeHint is used to 17 | // make sure it never becomes smaller than that. 18 | QSize sizeHint() const override 19 | { 20 | return QSize(100, 50); 21 | } 22 | QSize minimumSizeHint() const override 23 | { 24 | return QSize(50, 25); 25 | } 26 | }; 27 | 28 | 29 | class Demo : public QWidget 30 | { 31 | Q_OBJECT 32 | 33 | public: 34 | Demo(QWidget *parent = nullptr); 35 | ~Demo(); 36 | 37 | }; 38 | -------------------------------------------------------------------------------- /qt_project/flow_layout_and_sizehint/sizehint_minimumsizehint/main.cpp: -------------------------------------------------------------------------------- 1 | #include "demo.h" 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | Demo w; 8 | w.show(); 9 | return a.exec(); 10 | } 11 | -------------------------------------------------------------------------------- /qt_project/flow_layout_and_sizehint/sizehint_minimumsizehint/sizehint_minimumsizehint.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 2022-11-24T03:52:54.3235149Z 6 | 7 | 8 | 2022-11-24T03:52:54.4690165Z 9 | 10 | --------------------------------------------------------------------------------