当前位置: 首页 > news >正文

QT6 源(106):阅读与注释重要的基类控件 QWidget,这是其精简版,完整注释版为篇 37

(1)原篇幅 37 为最开始整理,整理的不是太完善。重点不突出。故重新整理,但删除了大量的注释,重在突出本 QWidget类的内部逻辑,更易观察其包含了哪些内容。至于不理解的成员函数与属性,内容已不太多了,查阅官方注释即可。
这是篇 37 的超文本链接,那里的注释较完整些
(2)

#ifndef QWIDGET_H
#define QWIDGET_H#include <QtWidgets/qtwidgetsglobal.h>
#include <QtGui/qwindowdefs.h>
#include <QtCore/qobject.h>
#include <QtCore/qmargins.h>
#include <QtGui/qpaintdevice.h>
#include <QtGui/qpalette.h>
#include <QtGui/qfont.h>
#include <QtGui/qfontmetrics.h>
#include <QtGui/qfontinfo.h>
#include <QtWidgets/qsizepolicy.h>
#include <QtGui/qregion.h>
#include <QtGui/qbrush.h>
#include <QtGui/qcursor.h>
#  include <QtGui/qkeysequence.h>#ifdef QT_INCLUDE_COMPAT
#include <QtGui/qevent.h>
#endifQT_BEGIN_NAMESPACEclass QLayout;
class QStyle;
class QAction;
class QVariant;
class QWindow;
class QActionEvent;
class QMouseEvent;
class QWheelEvent;
class QHoverEvent;
class QKeyEvent;
class QEnterEvent;
class QFocusEvent;
class QPaintEvent;
class QMoveEvent;
class QResizeEvent;
class QCloseEvent;
class QContextMenuEvent;
class QInputMethodEvent;
class QTabletEvent;
class QDragEnterEvent;
class QDragMoveEvent;
class QDragLeaveEvent;
class QDropEvent;
class QScreen;
class QShowEvent;
class QHideEvent;
class QIcon;
class QBackingStore;
class QPlatformWindow;
class QLocale;
class QGraphicsProxyWidget;
class QGraphicsEffect;
class QRasterWindowSurface;
class QUnifiedToolbarSurface;
class QPixmap;
class QDebug;template <>  //至此,该类型转换函数支持了对到 QWidget * 指针类型的准还
inline       QWidget * qobject_cast<      QWidget *>(      QObject * o)
{if (!o || !o->isWidgetType()) return nullptr;return static_cast<QWidget*>(o);  //可见,核心还是 c++ 的静态类型转换
}template <>
inline const QWidget * qobject_cast<const QWidget *>(const QObject * o)
{if (!o || !o->isWidgetType()) return nullptr;return static_cast<const QWidget*>(o);
}#define QWIDGETSIZE_MAX ((1<<24)-1)//说明本指针类型可以交给 QDebug 输出来调试
Q_WIDGETS_EXPORT QDebug operator<<(QDebug, const QWidget *);class QWidgetData
{
public:WId winid;uint widget_attributes;Qt::WindowFlags window_flags;uint window_state : 4;uint focus_policy : 4;uint sizehint_forced :1;uint is_closing :1;uint in_show : 1;uint in_set_window_state : 1;mutable uint fstrut_dirty : 1;uint context_menu_policy : 3;uint window_modality : 2;uint in_destructor : 1;uint unused : 13;QRect crect;mutable QPalette pal;QFont fnt;QRect wrect;
};class QWidgetPrivate;class Q_WIDGETS_EXPORT QWidget : public QObject, public QPaintDevice
{Q_OBJECTQ_DECLARE_PRIVATE(QWidget)Q_PROPERTY(QString     windowTitle    //先文本量,再布尔量,再其它,再数字量READ       windowTitle      WRITE     setWindowTitleNOTIFY     windowTitleChanged)Q_PROPERTY(QIcon       windowIconREAD       windowIcon       WRITE     setWindowIconNOTIFY     windowIconChanged)Q_PROPERTY(QString     windowIconTextREAD       windowIconText   WRITE     setWindowIconTextNOTIFY     windowIconTextChanged) // deprecated 废弃Q_PROPERTY(QString     toolTipREAD       toolTip          WRITE     setToolTip)Q_PROPERTY(int         toolTipDurationREAD       toolTipDuration  WRITE     setToolTipDuration)Q_PROPERTY(QString     statusTipREAD       statusTip        WRITE     setStatusTip)Q_PROPERTY(QString     whatsThisREAD       whatsThis        WRITE     setWhatsThis)Q_PROPERTY(QString     accessibleNameREAD       accessibleName   WRITE     setAccessibleName)Q_PROPERTY(QString     accessibleDescriptionREAD       accessibleDescriptionWRITE   setAccessibleDescription)Q_PROPERTY(QString     styleSheetREAD       styleSheet       WRITE     setStyleSheet)Q_PROPERTY(QLocale     localeREAD       locale           WRITE     setLocaleRESET      unsetLocale)Q_PROPERTY(QString     windowFilePathREAD       windowFilePath   WRITE     setWindowFilePath)Q_PROPERTY(bool               enabledREAD            isEnabled   WRITE     setEnabled)Q_PROPERTY(bool        updatesEnabledREAD       updatesEnabled   WRITE     setUpdatesEnabledDESIGNABLE        false)Q_PROPERTY(bool        focus            READ      hasFocus)Q_PROPERTY(bool        modal            READ      isModal)Q_PROPERTY(Qt::WindowModality      windowModalityREAD                   windowModalityWRITE               setWindowModality)Q_PROPERTY(bool        mouseTrackingREAD    hasMouseTracking    WRITE      setMouseTracking)Q_PROPERTY(bool       tabletTrackingREAD   hasTabletTracking    WRITE      setTabletTracking)Q_PROPERTY(bool       isActiveWindow    READ       isActiveWindow)Q_PROPERTY(bool         visibleREAD      isVisible         WRITE      setVisibleDESIGNABLE    false)Q_PROPERTY(bool        minimized        READ       isMinimized)Q_PROPERTY(bool        maximized        READ       isMaximized)Q_PROPERTY(bool        fullScreen       READ       isFullScreen)Q_PROPERTY(bool        acceptDropsREAD       acceptDrops      WRITE      setAcceptDrops)Q_PROPERTY(bool        windowModifiedREAD     isWindowModified   WRITE      setWindowModified)Q_PROPERTY(bool        autoFillBackgroundREAD       autoFillBackgroundWRITE   setAutoFillBackground)QDOC_PROPERTY(Qt::WindowFlags    windowFlagsREAD                 windowFlagsWRITE             setWindowFlags)Q_PROPERTY(QPalette    paletteREAD       palette         WRITE      setPalette)Q_PROPERTY(QFont       fontREAD       font            WRITE      setFont)Q_PROPERTY(QCursor     cursorREAD       cursor          WRITE      setCursorRESET unsetCursor)Q_PROPERTY(Qt::FocusPolicy                 focusPolicyREAD                           focusPolicyWRITE                       setFocusPolicy)Q_PROPERTY(QSizePolicy                      sizePolicyREAD                            sizePolicyWRITE                        setSizePolicy)Q_PROPERTY(Qt::ContextMenuPolicy     contextMenuPolicyREAD                     contextMenuPolicyWRITE                 setContextMenuPolicy)Q_PROPERTY(Qt::LayoutDirection       layoutDirectionREAD                     layoutDirectionWRITE                 setLayoutDirectionRESET               unsetLayoutDirection)Q_PROPERTY(Qt::InputMethodHints      inputMethodHintsREAD                     inputMethodHintsWRITE                 setInputMethodHints)Q_PROPERTY(QRect           geometryREAD           geometry      WRITE      setGeometry)Q_PROPERTY(QRect      frameGeometry      READ     frameGeometry)Q_PROPERTY(QRect     normalGeometry      READ    normalGeometry)Q_PROPERTY(QRect               rect      READ              rect)Q_PROPERTY(QRect       childrenRect      READ      childrenRect)Q_PROPERTY(QRegion     childrenRegion    READ      childrenRegion)Q_PROPERTY(QSize         frameSize       READ      frameSize)Q_PROPERTY(QSize              sizeREAD              size       WRITE        resizeDESIGNABLE        false      STORED       false)Q_PROPERTY(QSize              sizeHint    READ       sizeHint)Q_PROPERTY(QSize              sizeIncrementREAD              sizeIncrementWRITE          setSizeIncrement)Q_PROPERTY(QSize          baseSizeREAD          baseSize        WRITE      setBaseSize)Q_PROPERTY(QSize       minimumSizeHintREAD       minimumSizeHint)Q_PROPERTY(QSize       minimumSizeREAD       minimumSize        WRITE      setMinimumSize)Q_PROPERTY(QSize       maximumSizeREAD       maximumSize        WRITE      setMaximumSize)Q_PROPERTY(int         minimumWidthREAD       minimumWidth       WRITE      setMinimumWidthSTORED           falseDESIGNABLE       false)Q_PROPERTY(int         minimumHeightREAD       minimumHeight      WRITE      setMinimumHeightSTORED           falseDESIGNABLE       false)Q_PROPERTY(int         maximumWidthREAD       maximumWidth       WRITE      setMaximumWidthSTORED           falseDESIGNABLE       false)Q_PROPERTY(int         maximumHeightREAD       maximumHeight      WRITE      setMaximumHeightSTORED           falseDESIGNABLE       false)Q_PROPERTY(int   width    READ   width)Q_PROPERTY(int   height   READ   height)Q_PROPERTY(int   x        READ    x)Q_PROPERTY(int   y        READ    y)Q_PROPERTY(QPoint   posREAD    pos   WRITE   moveDESIGNABLE   false    STORED   false)Q_PROPERTY(double      windowOpacityREAD       windowOpacity    WRITE    setWindowOpacity)private:void setBackingStore(QBackingStore *store);bool testAttribute_helper(Qt::WidgetAttribute) const;QLayout *takeLayout();friend class QBackingStoreDevice;friend class QWidgetRepaintManager;friend class QApplication;friend class QApplicationPrivate;friend class QGuiApplication;friend class QGuiApplicationPrivate;friend class QBaseApplication;friend class QPainter;friend class QPainterPrivate;friend class QPixmap; // for QPixmap::fill()friend class QFontMetrics;friend class QFontInfo;friend class QLayout;friend class QWidgetItem;friend class QWidgetItemV2;friend class QX11PaintEngine;friend class QWin32PaintEngine;friend class QShortcutPrivate;friend class QWindowSurface;friend class QGraphicsProxyWidget;friend class QGraphicsProxyWidgetPrivate;friend class QStyleSheetStyle;friend struct QWidgetExceptionCleaner;friend class QWidgetWindow;friend class QAccessibleWidget;friend class QAccessibleTable;friend class QAccessibleTabButton;friend class QGestureManager;friend class QWinNativePanGestureRecognizer;friend class QWidgetEffectSourcePrivate;friend Q_WIDGETS_EXPORT QWidgetData *qt_qwidget_data(QWidget *widget);friend Q_WIDGETS_EXPORT QWidgetPrivate *qt_widget_private(QWidget *widget);private:Q_DISABLE_COPY(QWidget)Q_PRIVATE_SLOT(d_func(), void _q_showIfNotHidden())Q_PRIVATE_SLOT(d_func(), QWindow *_q_closestWindowHandle())QWidgetData * data;protected:QWidget(QWidgetPrivate & d, QWidget * parent, Qt::WindowFlags f);public:enum RenderFlag {DrawWindowBackground = 0x1,DrawChildren = 0x2,IgnoreMask = 0x4};Q_DECLARE_FLAGS(RenderFlags, RenderFlag)explicit QWidget(QWidget * parent = nullptr,Qt::WindowFlags f = Qt::WindowFlags());~QWidget();// Q_PROPERTY(QString     windowTitle    //先文本量,再布尔量,再其它,再数字量
//             READ       windowTitle      WRITE     setWindowTitle
//             NOTIFY     windowTitleChanged)QString     windowTitle() const;
public Q_SLOTS :void     setWindowTitle(const QString &);
Q_SIGNALS:void        windowTitleChanged(const QString & title);public:
// Q_PROPERTY(QIcon       windowIcon
//             READ       windowIcon       WRITE     setWindowIcon
//             NOTIFY     windowIconChanged)QIcon       windowIcon() const;void     setWindowIcon(       const QIcon & icon);
Q_SIGNALS :void        windowIconChanged(const QIcon & icon);public:
// Q_PROPERTY(QString     windowIconText
//             READ       windowIconText   WRITE     setWindowIconText
//             NOTIFY     windowIconTextChanged) // deprecated 废弃QString     windowIconText() const;void     setWindowIconText(const QString &);
Q_SIGNALS :void        windowIconTextChanged(const QString & iconText);public:
// Q_PROPERTY(QString     toolTip
//             READ       toolTip          WRITE     setToolTip)QString     toolTip() const;void     setToolTip(const QString &);// Q_PROPERTY(int         toolTipDuration
//             READ       toolTipDuration  WRITE     setToolTipDuration)int         toolTipDuration() const;void     setToolTipDuration(int msec);// Q_PROPERTY(QString     statusTip
//             READ       statusTip        WRITE     setStatusTip)QString     statusTip() const;void    setStatusTip(const QString &);// Q_PROPERTY(QString     whatsThis
//             READ       whatsThis        WRITE     setWhatsThis)QString     whatsThis() const;void    setWhatsThis(const QString &);// Q_PROPERTY(QString     accessibleName
//             READ       accessibleName   WRITE     setAccessibleName)QString    accessibleName() const;void    setAccessibleName(const QString & name);// Q_PROPERTY(QString     accessibleDescription
//             READ       accessibleDescription
//             WRITE   setAccessibleDescription)QString     accessibleDescription() const;void    setAccessibleDescription(const QString & description);// Q_PROPERTY(QString     styleSheet
//             READ       styleSheet       WRITE     setStyleSheet)QString     styleSheet() const;
public Q_SLOTS :void    setStyleSheet(const QString & styleSheet);public:
// Q_PROPERTY(QLocale     locale
//             READ       locale           WRITE     setLocale
//            RESET  unsetLocale)QLocale     locale() const;void    setLocale(const QLocale & locale);void  unsetLocale();// Q_PROPERTY(QString     windowFilePath
//             READ       windowFilePath   WRITE     setWindowFilePath)QString     windowFilePath() const;void    setWindowFilePath(const QString & filePath);// Q_PROPERTY(bool               enabled
//             READ            isEnabled   WRITE     setEnabled)bool            isEnabled  () const;bool            isEnabledTo(const QWidget *) const;
public Q_SLOTS :void           setEnabled  (bool);void           setDisabled (bool);public:
// Q_PROPERTY(bool        updatesEnabled
//            READ        updatesEnabled   WRITE     setUpdatesEnabled
//            DESIGNABLE        false)inline    bool        updatesEnabled() const;void     setUpdatesEnabled(bool enable);// Q_PROPERTY(bool        focus            READ      hasFocus) //后面还有属性 focusPolicybool     hasFocus() const;
public Q_SLOTS :inline    void     setFocus() { setFocus(Qt::OtherFocusReason); }
public:void               setFocus(Qt::FocusReason reason);void             clearFocus();// Q_PROPERTY(bool        mouseTracking    //鼠标跟踪
//            READ     hasMouseTracking    WRITE      setMouseTracking)bool     hasMouseTracking() const;void     setMouseTracking(bool enable);// Q_PROPERTY(bool       tabletTracking    //触摸屏跟踪
//            READ    hasTabletTracking    WRITE      setTabletTracking)bool    hasTabletTracking() const;void    setTabletTracking(bool enable);// Q_PROPERTY(bool       isActiveWindow    READ       isActiveWindow)bool       isActiveWindow() const;// Q_PROPERTY(bool         visible
//            READ       isVisible         WRITE      setVisible
//            DESIGNABLE     false)bool       isVisible  () const;bool       isVisibleTo(const QWidget *) const;inline    bool       isHidden   () const;
public Q_SLOTS :virtual   void      setVisible  (bool visible);void      setHidden   (bool hidden );void         show ();void         hide ();bool         close();public:
// Q_PROPERTY(bool        minimized        READ       isMinimized)bool      isMinimized() const;
public Q_SLOTS :void    showMinimized();public:
// Q_PROPERTY(bool        maximized        READ       isMaximized)bool      isMaximized() const;
public Q_SLOTS :void    showMaximized();public:
// Q_PROPERTY(bool        fullScreen       READ       isFullScreen)bool      isFullScreen() const;
public Q_SLOTS :void    showFullScreen();public:
// Q_PROPERTY(bool        acceptDrops
//            READ        acceptDrops      WRITE      setAcceptDrops)bool        acceptDrops() const;void     setAcceptDrops(bool on);// Q_PROPERTY(bool        windowModified
//            READ      isWindowModified   WRITE      setWindowModified)bool      isWindowModified() const;
public Q_SLOTS :void     setWindowModified(bool);public:
// Q_PROPERTY(bool        autoFillBackground
//            READ        autoFillBackground
//            WRITE    setAutoFillBackground)bool        autoFillBackground() const;void     setAutoFillBackground(bool   enabled);// Q_PROPERTY(bool                         modal            READ      isModal)bool                       isModal() const;// Q_PROPERTY(Qt::WindowModality      windowModality
//             READ                   windowModality
//             WRITE               setWindowModality)Qt::WindowModality      windowModality() const;void       setWindowModality( Qt::WindowModality    windowModality);// QDOC_PROPERTY(Qt::WindowFlags    windowFlags
//             READ                 windowFlags
//             WRITE             setWindowFlags)inline   Qt::WindowFlags    windowFlags() const;void              setWindowFlags(Qt::WindowFlags  type);            void         overrideWindowFlags(Qt::WindowFlags  type);void              setWindowFlag (Qt::WindowType,  bool on = true);// Q_PROPERTY(QPalette    palette
//             READ       palette         WRITE      setPalette)const QPalette &  palette() const;void    setPalette(const QPalette &);// Q_PROPERTY(QFont       font
//             READ       font            WRITE      setFont)const QFont  &    font() const;void    setFont(const QFont &);QFontMetrics      fontMetrics() const;QFontInfo         fontInfo() const;// Q_PROPERTY(QCursor     cursor
//             READ       cursor          WRITE      setCursor
//             RESET unsetCursor)QCursor    cursor() const;void    setCursor(const QCursor &);void  unsetCursor();// Q_PROPERTY(Qt::FocusPolicy         focusPolicy //也有布尔属性 focus,在前面
//             READ                   focusPolicy
//             WRITE               setFocusPolicy)Qt::FocusPolicy        focusPolicy() const; //焦点策略void                setFocusPolicy(Qt::FocusPolicy policy);QWidget  *             focusProxy() const;  //焦点代理,一字之差void                setFocusProxy(QWidget *);// Q_PROPERTY(QSizePolicy             sizePolicy
//             READ                   sizePolicy
//             WRITE               setSizePolicy)QSizePolicy            sizePolicy() const;void                setSizePolicy(QSizePolicy);inline void                setSizePolicy(QSizePolicy::Policy horizontal,QSizePolicy::Policy vertical);// Q_PROPERTY(Qt::ContextMenuPolicy     contextMenuPolicy
//             READ                     contextMenuPolicy
//             WRITE                 setContextMenuPolicy)Qt::ContextMenuPolicy     contextMenuPolicy() const;void    setContextMenuPolicy(Qt::ContextMenuPolicy policy);// Q_PROPERTY(Qt::LayoutDirection       layoutDirection
//             READ                     layoutDirection
//             WRITE                 setLayoutDirection
//             RESET               unsetLayoutDirection)Qt::LayoutDirection       layoutDirection() const;void   setLayoutDirection(  Qt::LayoutDirection   direction  );void                unsetLayoutDirection();// Q_PROPERTY(Qt::InputMethodHints      inputMethodHints
//             READ                     inputMethodHints
//             WRITE                 setInputMethodHints)Qt::InputMethodHints      inputMethodHints() const;void   setInputMethodHints( Qt::InputMethodHints  hints);// Q_PROPERTY(double      windowOpacity    //不透明度
//             READ       windowOpacity    WRITE    setWindowOpacity)qreal      windowOpacity() const;void    setWindowOpacity(qreal level);// Q_PROPERTY(QRect           geometry
//             READ           geometry      WRITE      setGeometry)const QRect    &      geometry() const;inline void        setGeometry(int x, int y, int w, int h);void        setGeometry(const QRect &);QByteArray        saveGeometry() const;void     updateGeometry();bool    restoreGeometry(const QByteArray & geometry);// Q_PROPERTY(QRect      frameGeometry      READ     frameGeometry)QRect      frameGeometry() const;// Q_PROPERTY(QRect     normalGeometry      READ    normalGeometry)QRect     normalGeometry() const;// Q_PROPERTY(QRect               rect      READ              rect)inline    QRect               rect() const;QRect       contentsRect() const;// Q_PROPERTY(QRect       childrenRect      READ      childrenRect)QRect       childrenRect() const;// Q_PROPERTY(QRegion     childrenRegion    READ      childrenRegion)QRegion     childrenRegion() const;QRegion      visibleRegion() const;// Q_PROPERTY(QSize         frameSize       READ      frameSize)QSize         frameSize() const;// Q_PROPERTY(QSize              size
//             READ              size       WRITE        resize
//             DESIGNABLE        false      STORED       false)QSize              size() const;void             resize(int w, int h);void             resize(const QSize &);// Q_PROPERTY(QSize              sizeHint    READ       sizeHint)virtual   QSize              sizeHint()    const;virtual   bool      hasHeightForWidth()    const;virtual   int          heightForWidth(int) const;// Q_PROPERTY(QSize       minimumSizeHint
//             READ       minimumSizeHint)virtual   QSize       minimumSizeHint() const;// Q_PROPERTY(QSize              sizeIncrement
//             READ              sizeIncrement
//             WRITE          setSizeIncrement)QSize              sizeIncrement() const;void           setSizeIncrement(const QSize &);void           setSizeIncrement(int w, int h);// Q_PROPERTY(QSize          baseSize
//             READ          baseSize        WRITE      setBaseSize)QSize          baseSize() const;void       setBaseSize(const QSize &);void       setBaseSize(int basew, int baseh);// Q_PROPERTY(QSize       minimumSize
//             READ       minimumSize        WRITE      setMinimumSize)QSize       minimumSize() const;void     setMinimumSize(const QSize &);void     setMinimumSize(int minw, int minh);// Q_PROPERTY(QSize       maximumSize
//             READ       maximumSize        WRITE      setMaximumSize)QSize       maximumSize() const;void    setMaximumSize(const QSize &);void    setMaximumSize(int maxw, int maxh);// Q_PROPERTY(int            minimumWidth
//            READ           minimumWidth       WRITE      setMinimumWidth
//            STORED            false
//            DESIGNABLE        false)int            minimumWidth() const;void        setMinimumWidth(int minw);// Q_PROPERTY(int            minimumHeight
//            READ           minimumHeight      WRITE      setMinimumHeight
//            STORED            false
//            DESIGNABLE        false)int            minimumHeight() const;void        setMinimumHeight(int minh);// Q_PROPERTY(int              maximumWidth
//            READ             maximumWidth       WRITE      setMaximumWidth
//            STORED           false
//            DESIGNABLE       false)int              maximumWidth() const;void          setMaximumWidth(int maxw);// Q_PROPERTY(int              maximumHeight
//            READ             maximumHeight      WRITE      setMaximumHeight
//            STORED           false
//            DESIGNABLE       false)int              maximumHeight() const;void          setMaximumHeight(int maxh);// Q_PROPERTY(int   width    READ   width)inline    int   width() const;// Q_PROPERTY(int   height   READ   height)inline    int   height() const;// Q_PROPERTY(int   x        READ    x)int   x() const;// Q_PROPERTY(int   y        READ    y)int   y() const;// Q_PROPERTY(QPoint    pos
//            READ      pos   WRITE    move
//            DESIGNABLE      false    STORED   false)QPoint    pos() const;void      move(int x, int y);void      move(const QPoint &);protected : //从保护、公共到槽函数,修改窗体的成员函,结合起来看,学习void initPainter(QPainter * painter) const override;void create(WId = 0,    bool initializeWindow = true,bool destroyOldWindow = true);void destroy(bool destroyWindow = true,  bool destroySubWindows = true);public  :inlinevoid update(int x, int y, int w, int h);void update(const QRect   &);void update(const QRegion &);void repaint(int x, int y, int w, int h);void repaint(const QRect   &);void repaint(const QRegion &);protected Q_SLOTS:void updateMicroFocus(Qt::InputMethodQuery query = Qt::ImQueryAll);public Q_SLOTS:void update ();void repaint();//void show();//void hide();//bool close();void raise();void lower();//  void showMinimized();//  void showMaximized();//  void showFullScreen();void showNormal();//        void    setDisabled      (bool);//        void    setEnabled       (bool);//        void    setWindowTitle   (const QString &);//virtual void    setVisible       (bool visible);//        void    setStyleSheet    (const QString & styleSheet);//        void    setHidden        (bool hidden);//        void    setWindowModified(bool);//inline  void    setFocus         () { setFocus(Qt::OtherFocusReason); }Q_SIGNALS://void    windowTitleChanged     (const QString & title);//void     windowIconChanged     (const QIcon   & icon);//void windowIconTextChanged     (const QString & iconText);void   customContextMenuRequested(const QPoint  & pos);public:QStyle   *     style() const;void        setStyle(QStyle *);QLayout  *    layout() const;void       setLayout(QLayout *);QScreen  *    screen() const;void       setScreen(QScreen *);WId               winId() const;inline  WId       internalWinId() const { return data->winid; }WId      effectiveWinId() const;void        createWinId(); // internal, going awayQString                       windowRole() const;void                       setWindowRole(const QString &);QPalette::ColorRole       backgroundRole() const;void                   setBackgroundRole(QPalette::ColorRole);QPalette::ColorRole       foregroundRole() const;void                   setForegroundRole(QPalette::ColorRole);QGraphicsEffect      *    graphicsEffect() const;void                   setGraphicsEffect(QGraphicsEffect * effect);QGraphicsProxyWidget *    graphicsProxyWidget() const;QRegion       mask() const;void       setMask(const QBitmap &);void       setMask(const QRegion &);void     clearMask();Qt::WindowStates           windowState() const;void                    setWindowState(Qt::WindowStates state);void               overrideWindowState(Qt::WindowStates state);QMargins       contentsMargins() const;void        setContentsMargins(int left, int top, int right, int bottom);void        setContentsMargins(const QMargins & margins);inline  bool      testAttribute(Qt::WidgetAttribute) const;void       setAttribute(Qt::WidgetAttribute, bool on = true);bool    isAncestorOf(const QWidget * child) const;void    setParent   (QWidget * parent);void    setParent   (QWidget * parent, Qt::WindowFlags f);QList<QAction *>       actions() const;void             insertActions(QAction * before, const QList<QAction *> & actions);void                addActions(                  const QList<QAction *> & actions);void             insertAction (QAction * before, QAction * action);void                addAction (                  QAction * action);void             removeAction (                  QAction * action);Q_INVOKABLE   QPixmap   grab(const QRect & rectangle = QRect(QPoint(0, 0),QSize(-1, -1)));void                    grabGesture(Qt::GestureType  type,Qt::GestureFlags flags = Qt::GestureFlags());void                  ungrabGesture(Qt::GestureType  type);static QWidget *   mouseGrabber  (); //关于鼠标void                    grabMouse();void                    grabMouse(const QCursor &);void                 releaseMouse();static QWidget * keyboardGrabber (); //关于键盘void                     grabKeyboard();void                  releaseKeyboard();int             grabShortcut(const QKeySequence & key, //快捷键Qt::ShortcutContext  context = Qt::WindowShortcut);void         releaseShortcut(int id);void             setShortcutEnabled   (int id, bool enable = true);void             setShortcutAutoRepeat(int id, bool enable = true);bool underMouse   () const;inline  bool isRightToLeft() const { return layoutDirection() == Qt::RightToLeft; }inline  bool isLeftToRight() const { return layoutDirection() == Qt::LeftToRight; }bool                      isWindow() const;QWidget *                   window() const;QWindow *                   windowHandle() const;QWidget *             parentWidget() const;QWidget *       nativeParentWidget() const;inline  QWidget *           topLevelWidget() const { return window(); }QWidget *              focusWidget() const;QWidget *        nextInFocusChain () const;QWidget *    previousInFocusChain () const;static  QWidget *                     find(WId);inline  QWidget *                  childAt(int x, int y) const;QWidget *                  childAt(const QPoint & p) const;static  QWidget *    createWindowContainer(QWindow * window,QWidget    * parent=nullptr,Qt::WindowFlags flags = Qt::WindowFlags());QPointF mapTo      (const QWidget *, const QPointF &) const;QPoint  mapTo      (const QWidget *, const QPoint  &) const;QPointF mapToGlobal(const QPointF &) const;QPoint  mapToGlobal(const QPoint  &) const;QPointF mapToParent(const QPointF &) const;QPoint  mapToParent(const QPoint  &) const;QPointF mapFrom      (const QWidget *, const QPointF &) const;QPoint  mapFrom      (const QWidget *, const QPoint  &) const;QPointF mapFromGlobal(const QPointF &) const;QPoint  mapFromGlobal(const QPoint  &) const;QPointF mapFromParent(const QPointF &) const;QPoint  mapFromParent(const QPoint  &) const;int                       devType() const override;inline Qt::WindowType  windowType() const;QBackingStore        * backingStore       () const;QPaintEngine         * paintEngine        () const override; //以下开始各种写函数void activateWindow();void stackUnder    (QWidget *);void adjustSize    ();void ensurePolished() const;void scroll(int dx, int dy);void scroll(int dx, int dy, const QRect &);static  void setTabOrder   (QWidget *, QWidget *);void setFixedSize  (const QSize &);void setFixedSize  (int w, int h);void setFixedWidth (int w);void setFixedHeight(int h);void render(QPaintDevice  * target,const QPoint  & targetOffset = QPoint (),const QRegion & sourceRegion = QRegion(),RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren));void render(QPainter      * painter,const QPoint  & targetOffset = QPoint(),const QRegion & sourceRegion = QRegion(),RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren));protected:  // Event handlersbool                         event(QEvent            * event) override;virtual void       mousePressEvent(QMouseEvent       * event);virtual void     mouseReleaseEvent(QMouseEvent       * event);virtual void mouseDoubleClickEvent(QMouseEvent       * event);virtual void        mouseMoveEvent(QMouseEvent       * event);virtual void            wheelEvent(QWheelEvent       * event);virtual void         keyPressEvent(QKeyEvent         * event);virtual void       keyReleaseEvent(QKeyEvent         * event);virtual void          focusInEvent(QFocusEvent       * event);virtual void         focusOutEvent(QFocusEvent       * event);virtual void            enterEvent(QEnterEvent       * event);virtual void            leaveEvent(QEvent            * event);virtual void            paintEvent(QPaintEvent       * event);virtual void             moveEvent(QMoveEvent        * event);virtual void           resizeEvent(QResizeEvent      * event);virtual void            closeEvent(QCloseEvent       * event);virtual void      contextMenuEvent(QContextMenuEvent * event);virtual void           tabletEvent(QTabletEvent      * event);virtual void           actionEvent(QActionEvent      * event);virtual void        dragEnterEvent(QDragEnterEvent   * event);virtual void         dragMoveEvent(QDragMoveEvent    * event);virtual void        dragLeaveEvent(QDragLeaveEvent   * event);virtual void             dropEvent(QDropEvent        * event);virtual void             showEvent(QShowEvent        * event);virtual void             hideEvent(QHideEvent        * event);virtual void           changeEvent(QEvent            *      );virtual bool           nativeEvent(const QByteArray & eventType, void * message,qintptr * result);virtual void      inputMethodEvent(QInputMethodEvent *      );
public:virtual QVariant  inputMethodQuery(Qt::InputMethodQuery) const;protected:friend class QDataWidgetMapperPrivate; // for access to focusNextPrevChildvirtual bool focusNextPrevChild(bool next);inline  bool focusNextChild()     { return focusNextPrevChild(true ); }inline  bool focusPreviousChild() { return focusNextPrevChild(false); }int            metric       (PaintDeviceMetric)  const override;QPaintDevice * redirected   (QPoint * offset)    const override;QPainter     * sharedPainter()                   const override;}; //完结 class QWidget : public QObject, public QPaintDevice
Q_DECLARE_OPERATORS_FOR_FLAGS(QWidget::RenderFlags)QT_END_NAMESPACE#endif // QWIDGET_H

(3)

谢谢

相关文章:

QT6 源(106):阅读与注释重要的基类控件 QWidget,这是其精简版,完整注释版为篇 37

&#xff08;1&#xff09;原篇幅 37 为最开始整理&#xff0c;整理的不是太完善。重点不突出。故重新整理&#xff0c;但删除了大量的注释&#xff0c;重在突出本 QWidget类的内部逻辑&#xff0c;更易观察其包含了哪些内容。至于不理解的成员函数与属性&#xff0c;内容已不太…...

【Bluedroid】蓝牙HID DEVICE错误报告处理全流程源码解析

本文基于Android蓝牙协议栈代码&#xff0c;深入解析HID设备在接收非法指令&#xff08;如无效的SET_REPORT&#xff09;时的错误处理全流程&#xff0c;涵盖错误映射、协议封装、传输控制三大核心模块。重点剖析以下机制&#xff1a; HID协议规范错误码的动态转换策略 控制通…...

Day29 类的装饰器

类也有修饰器&#xff0c;他的逻辑类似&#xff1a;接收一个类&#xff0c;返回一个修改后的类。例如 添加新的方法或属性&#xff08;如示例中的 log 方法&#xff09;。修改原有方法&#xff08;如替换 init 方法&#xff0c;添加日志&#xff09;。甚至可以返回一个全新的类…...

学习黑客Active Directory 入门指南(二)

Active Directory 入门指南&#xff08;二&#xff09;&#xff1a;深入逻辑结构与物理组件 &#x1f333;&#x1f3e2; 大家好&#xff01;欢迎回到 “Active Directory 入门指南” 系列的第二篇。在上一篇中&#xff0c;我们初步认识了Active Directory&#xff0c;了解了其…...

为什么el-select组件在下拉选择后无法赋值

为什么el-select组件在下拉选择后无法赋值 https://blog.csdn.net/ZHENGCHUNJUN/article/details/127325558 这个链接解决了大模型无法解决的问题 大模型能够写基础且高级一些的代码&#xff0c;但是遇到再深入一些的问题&#xff0c;还是得问百度。对于我这种小白来说问题原因…...

FreeRTOS的学习记录(临界区保护,调度器挂起与恢复)

临界区 在 FreeRTOS 中&#xff0c;临界区&#xff08;Critical Section&#xff09; 是指程序中一段必须以原子方式执行的代码区域&#xff0c;在此区域内不允许发生任务切换或中断干扰&#xff0c;以保护共享资源或执行关键操作。FreeRTOS 提供了多种机制来实现临界区&#…...

给个人程序加上MCP翅膀

背景 最近MCP这个词真是到处都是&#xff0c;看起来特别高大上。我平时没事的时候也一直在关注这方面的技术&#xff0c;知道它是怎么一回事&#xff0c;也懂该怎么去实现。但可惜一直抽不出时间来自己动手搞一个MCP服务。网上关于MCP的教程一搜一大把&#xff0c;但基本上都是…...

2023年河南CCPC(ABCEFHK)

文章目录 2023河南CCPCA. 小水獭游河南(字符串)B. Art for Rest(数组切割)C. Toxel与随机数生成器(水)E. 矩阵游戏&#xff08;dp&#xff09;F. Art for Last(区间最小差分)H. Travel Begins(数学思维)K. 排列与质数&#xff08;规律&#xff09;总结 2023河南CCPC A. 小水獭…...

【 Redis | 实战篇 秒杀优化 】

目录 前言&#xff1a; 1.分布式锁 1.1.分布式锁的原理与方案 1.2.Redis的String结构实现分布式锁 1.3.锁误删问题 1.4.锁的原子性操作问题 1.5.Lua脚本解决原子性问题 1.6.基于String实现分布式锁存在的问题 1.7.Redisson分布式锁 2.秒杀优化 3.秒杀的异步优化 3.1…...

【Spring】核心机制:IOC与DI深度解析

目录 1.前言 2.正文 2.1三层架构 2.2Spring核心思想&#xff08;IOC与AOP&#xff09; 2.3两类注解&#xff1a;组件标识与配置 2.3.1五大类注解 2.3.1.1Controller 2.3.1.2Service 2.3.1.3Repository 2.3.1.4Configuration 2.3.1.5Component 2.3.2方法注解&#x…...

1-机器学习的基本概念

文章目录 一、机器学习的步骤Step1 - Function with unknownStep2 - Define Loss from Training DataStep3 - Optimization 二、机器学习的改进Q1 - 线性模型有一些缺点Q2 - 重新诠释机器学习的三步Q3 - 机器学习的扩展Q4 - 过拟合问题&#xff08;Overfitting&#xff09; 一、…...

ARM A64 STR指令

ARM A64 STR指令 1 STR (immediate)1.1 Post-index1.1.1 32-bit variant1.1.2 64-bit variant 1.2 Pre-index1.2.1 32-bit variant1.2.2 64-bit variant 1.3 Unsigned offset1.3.1 32-bit variant1.3.2 64-bit variant 1.4 Assembler symbols 2 STR (register)2.1 32-bit varia…...

虚幻引擎5-Unreal Engine笔记之`GameMode`、`关卡(Level)` 和 `关卡蓝图(Level Blueprint)`的关系

虚幻引擎5-Unreal Engine笔记之GameMode、关卡&#xff08;Level&#xff09; 和 关卡蓝图&#xff08;Level Blueprint&#xff09;的关系 code review! 文章目录 虚幻引擎5-Unreal Engine笔记之GameMode、关卡&#xff08;Level&#xff09; 和 关卡蓝图&#xff08;Level B…...

软件工具:批量图片区域识别+重命名文件的方法,发票识别和区域选择方法参考,基于阿里云实现

基于阿里云的批量图片区域识别与重命名解决方案 图像识别重命名 应用场景 ​​企业档案管理​​&#xff1a;批量处理扫描的合同、文件等图片&#xff0c;根据合同编号、文件标题等关键信息重命名文件​​医疗影像处理​​&#xff1a;识别X光、CT等医学影像中的患者ID、检查日…...

.NET外挂系列:1. harmony 基本原理和骨架分析

一&#xff1a;背景 1. 讲故事 为什么要开这么一个系列&#xff0c;是因为他可以对 .NET SDK 中的方法进行外挂&#xff0c;这种技术对解决程序的一些疑难杂症特别有用&#xff0c;在.NET高级调试 领域下大显神威&#xff0c;在我的训练营里也是花了一些篇幅来说这个&#xf…...

深入理解位图(Bit - set):概念、实现与应用

目录 引言 一、位图概念 &#xff08;一&#xff09;基本原理 &#xff08;二&#xff09;适用场景 二、位图的实现&#xff08;C 代码示例&#xff09; 三、位图应用 1. 快速查找某个数据是否在一个集合中 2. 排序 去重 3. 求两个集合的交集、并集等 4. 操作系…...

React Flow 边事件处理实战:鼠标事件、键盘操作及连接规则设置(附完整代码)

本文为《React Agent&#xff1a;从零开始构建 AI 智能体》专栏系列文章。 专栏地址&#xff1a;https://blog.csdn.net/suiyingy/category_12933485.html。项目地址&#xff1a;https://gitee.com/fgai/react-agent&#xff08;含完整代码示​例与实战源&#xff09;。完整介绍…...

【计算机网络】第一章:计算机网络体系结构

本篇笔记课程来源&#xff1a;王道计算机考研 计算机网络 【计算机网络】第一章&#xff1a;计算机网络体系结构 一、计算机网络的概念1. 理论2. 计算机网络、互连网、互联网的区别 二、计算机网络的组成、功能1. 组成2. 功能 三、交换技术1. 电路交换2. 报文交换3. 分组交换4.…...

实战设计模式之状态模式

概述 作为一种行为设计模式&#xff0c;状态模式允许对象在其内部状态改变时&#xff0c;改变其行为。这种模式通过将状态逻辑从对象中分离出来&#xff0c;并封装到独立的状态类中来实现。每个状态类代表一种特定的状态&#xff0c;拥有自己的一套行为方法。当对象的状态发生变…...

[C++入门]类和对象中(2)日期计算器的实现

目录 一、运算符重载 1、格式 2、简单举例 2、前置&#xff0c;后置 3、日期生成器的实现 1、声明与定义 1、友元函数 2、print函数 3、运算符重载 4、GetMonthDay 5、&#xff0c;-&#xff0c;&#xff0c;-的实现 6、重载流操作符 2、实现 3、定义源码 一、运算…...

数据质量问题的形成与解决

在数字化时代&#xff0c;数据已成为企业和组织发展的核心资产&#xff0c;数据质量的高低直接影响着决策的准确性、业务的高效性以及系统的稳定性。然而&#xff0c;数据质量问题频发&#xff0c;严重阻碍了数据价值的充分发挥。 一、数据质量问题的成因分析 1.信息因素 元数…...

论文阅读(四):Agglomerative Transformer for Human-Object Interaction Detection

论文来源&#xff1a;ICCV&#xff08;2023&#xff09; 项目地址&#xff1a;https://github.com/six6607/AGER.git 1.研究背景 人机交互&#xff08;HOI&#xff09;检测需要同时定位人与物体对并识别其交互关系&#xff0c;核心挑战在于区分相似交互的细微视觉差异&#…...

【机器学习】工具入门:飞牛启动Dify Ollama Deepseek

很久没有更新文章了,最近正好需要研究一些机器学习的东西&#xff0c;打算研究一下 difyOllama 以下是基于FN 的dify本地化部署&#xff0c;当然这也可能是全网唯一的飞牛部署dify手册 部署 官方手册&#xff1a;https://docs.dify.ai/en/getting-started/install-self-hos…...

课外活动:再次理解页面实例化PO对象的魔法方法__getattr__

课外活动&#xff1a;再次理解页面实例化PO对象的魔法方法__getattr__ 一、动态属性访问机制解析 1.1 核心实现原理 class Page:def __getattr__(self, loc):"""魔法方法拦截未定义属性访问"""if loc not in self.locators.keys():raise Exce…...

面试题总结二

1.mybatis三个范式 第一范式&#xff1a;表中字段不能再分&#xff0c;每行数据都是唯一的第二范式&#xff1a;满足第一范式&#xff0c;非主键字段只依赖于主键第三范式&#xff1a;满足第二范式&#xff0c;非主键字段没有传递依赖 2.MySQL数据库引擎有哪些 InnoDB&#…...

代码随想录算法训练营第六十六天| 图论11—卡码网97. 小明逛公园,127. 骑士的攻击

继续补&#xff0c;又是两个新算法&#xff0c;继续进行勉强理解&#xff0c;也是训练营最后一天了&#xff0c;六十多天的刷题告一段落了&#xff01; 97. 小明逛公园 97. 小明逛公园 感觉还是有点难理解原理 Floyd 算法对边的权值正负没有要求&#xff0c;都可以处理。核心…...

编程技能:字符串函数07,strncat

专栏导航 本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏&#xff0c;故划分为两个专栏导航。读者可以自行选择前往哪个专栏。 &#xff08;一&#xff09;WIn32 专栏导航 上一篇&#xff1a;编程技能&#xff1a;字符串函数06&#xff0c;strcat 回到目录…...

[Java实战]Spring Boot整合RabbitMQ:实现异步通信与消息确认机制(二十七)

[Java实战]Spring Boot整合RabbitMQ&#xff1a;实现异步通信与消息确认机制&#xff08;二十七&#xff09; 摘要&#xff1a;本文通过完整案例演示Spring Boot与RabbitMQ的整合过程&#xff0c;深入讲解异步通信原理与消息可靠性保证机制。包含交换机类型选择、消息持久化配…...

数据库中关于查询选课问题的解法

前言 今天上午起来复习了老师上课讲的选课问题。我总结了三个解法以及一点注意事项。 选课问题介绍 简单来说就是查询某某同学没有选或者选了什么课。然后查询出该同学的姓名&#xff0c;学号&#xff0c;课程号&#xff0c;课程名之类的。 sql文件我上传了。大家可以尝试练…...

用 UniApp 开发 TilePuzzle:一个由 CodeBuddy 主动驱动的拼图小游戏

我正在参加CodeBuddy「首席试玩官」内容创作大赛&#xff0c;本文所使用的 CodeBuddy 免费下载链接&#xff1a;腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 起心动念&#xff1a;从一个小游戏想法开始 最近在使用 UniApp 做练手项目的时候&#xff0c;我萌生了一个小小…...

golang 安装gin包、创建路由基本总结

文章目录 一、安装gin包和热加载包二、路由简单场景总结 一、安装gin包和热加载包 首先终端新建一个main.go然后go mod init ‘项目名称’执行以下命令 安装gin包 go get -u github.com/gin-gonic/gin终端安装热加载包 go get github.com/pilu/fresh终端输入fresh 运行 &…...

组态王|组态王中如何添加西门子1200设备

哈喽,你好啊,我是雷工! 最近使用组态王采集设备数据,设备的控制器为西门子的1214CPU, 这里边实施边记录,以下为在组态王中添加西门子1200PLC的笔记。 1、新建 在组态王工程浏览器中选择【设备】→点击【新建】。 2、选择设备 和设备建立通讯要通过对应的设备驱动。 在…...

碎片笔记|PromptStealer复现要点(附Docker简单实用教程)

前言&#xff1a;本篇博客记录PromptStealer复现历程&#xff0c;主要分享环境配置过程中的一些经验。 论文信息&#xff1a;Prompt Stealing Attacks Against Text-to-Image Generation Models. USENIX, 2024. 开源代码&#xff1a;https://github.com/verazuo/prompt-stealin…...

Docker配置SRS服务器 ,ffmpeg使用rtmp协议推流+vlc拉流

目录 演示视频 前期配置 Docker配置 ffmpeg配置 vlc配置 下载并运行 SRS 服务 推拉流流程实现 演示视频 2025-05-18 21-48-01 前期配置 Docker配置 运行 SRS 建议使用 Docker 配置 Docker 请移步&#xff1a; 一篇就够&#xff01;Windows上Docker Desktop安装 汉化完整指…...

c++学习之--- list

目录 ​编辑 一、list的定义: 二、list的模拟实现&#xff1a; 1、list的基本框架&#xff1a; 2、list的普通迭代器&#xff1a; 设计思想&#xff1a; 迭代器的一个特殊需求&#xff08;c 对于重载->的一颗语法糖&#xff09;&#xff1a; 代码实现&#xff1a; 3、cons…...

【C++】set、map 容器的使用

文章目录 1. set 和 multiset 的使用1.1 set类的介绍1.2 set的构造和迭代器1.3 set 的增删查1.4 insert和迭代器调用示例1.5 find和erase使用示例1.6 multiset和set的差异 2. map 和 multimap 的使用2.1 map 类的介绍2.2 pair 类型介绍2.3 map 的构造和迭代器2.4 map 的增删查2…...

实习记录小程序|基于SSM+Vue的实习记录小程序设计与实现(源码+数据库+文档)

实习记录小程序 目录 基于SSM的习记录小程序设计与实现 一、前言 二、系统设计 三、系统功能设计 1、小程序端&#xff1a; 2、后台 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码…...

Git从入门到精通

Git 是什么 Git 是一个分布式版本控制系统&#xff0c;主要用于跟踪和管理文件&#xff08;尤其是代码&#xff09;的变更。 Git的下载与安装 进入git官网下载界面,选择Windows系统。 点击选择Git for Windows/x64 Setup,进行安装。 注意: Git GUI 是Git提供的一个图形界面工…...

Binary Prediction with a Rainfall Dataset-(回归+特征工程+xgb)

Binary Prediction with a Rainfall Dataset 题意&#xff1a; 给你每天的天气信息&#xff0c;让你预测降雨量。 数据处理&#xff1a; 1.根据特征值构造天气降雨量的新特征值 2.根据时间构造月和季节特征 3.处理缺失值 建立模型&#xff1a; 1.建立lightgbm模型 2.建立…...

【C++】unordered_map与set的模拟实现

unordered系列map和set&#xff0c;与普通区别 用法几乎相同&#xff0c;键值唯一&#xff0c;区别unordered系列迭代器是单向的并且遍历出来不是有序的。unordered系列在数据规模大且无序的情况下性能更优 底层实现&#xff1a; map 和 set &#xff1a;基于平衡二叉树&…...

老旧设备升级利器:Modbus TCP转 Profinet让能效监控更智能

在工业自动化领域&#xff0c;ModbusTCP和Profinet是两种常见的通讯协议。Profinet是西门子公司推出的基于以太网的实时工业以太网标准&#xff0c;而Modbus则是由施耐德电气提出的全球首个真正开放的、应用于电子控制器上的现场总线协议。这两种协议各有各的优点&#xff0c;但…...

编译原理--期末复习

本文是我学习以下博主视频所作的笔记&#xff0c;写的不够清晰&#xff0c;建议大家直接去看这些博主的视频&#xff0c;他/她们讲得非常好&#xff1a; 基础知识概念&#xff1a; 1.【【编译原理】期末复习 零基础自学】&#xff0c;资料 2.【编译原理—混子速成期末保过】&…...

软件工程各种图总结

目录 1.数据流图 2.N-S盒图 3.程序流程图 4.UML图 UML用例图 UML状态图 UML时序图 5.E-R图 首先要先了解整个软件生命周期&#xff1a; 通常包含以下五个阶段&#xff1a;需求分析-》设计-》编码 -》测试-》运行和维护。 软件工程中应用到的图全部有&#xff1a;系统…...

Go 与 Gin 搭建简易 Postman:实现基础 HTTP 拨测的详细指南

Go 与 Gin 搭建简易 Postman&#xff1a;实现基础 HTTP 拨测的详细指南 文章目录 Go 与 Gin 搭建简易 Postman&#xff1a;实现基础 HTTP 拨测的详细指南项目简介代码结构各部分代码功能说明&#xff1a; 代码实现&#xff1a;main.go代码解释 handlers/probe.go代码解释 probe…...

层次原理图

层次原理图简介 层次原理图&#xff08;Hierarchical Schematic&#xff09;是一种常用于电子工程与系统设计的可视化工具&#xff0c;通过分层结构将复杂系统分解为多个可管理的子模块。它如同“设计蓝图”&#xff0c;以树状结构呈现整体与局部的关系&#xff1a;顶层展现系…...

嵌入式硬件篇---拓展板

文章目录 前言 前言 本文简单介绍了拓展板的原理以及使用。...

Redis的主从架构

主从模式 全量同步 首先主从同步过程第一步 会先比较replication id 判断是否是第一次同步假设为第一次同步 那么就会 启动bgsave异步生成RDB 同时fork子进程记录生成期间的新数据发送RDB给从节点 清空本地数据写入RDB 增量同步 对比ReplicationID不同因此选择增量同步在Rep…...

IIS入门指南:原理、部署与实战

引言&#xff1a;Web服务的基石 在Windows Server机房中&#xff0c;超过35%的企业级网站运行在IIS&#xff08;Internet Information Services&#xff09;之上。作为微软生态的核心Web服务器&#xff0c;IIS不仅支撑着ASP.NET应用的运行&#xff0c;更是Windows Server系统管…...

【上位机——WPF】布局控件

布局控件 常用布局控件Panel基类Grid(网格)UniformGrid(均匀分布)StackPanel(堆积面板)WrapPanel(换行面板)DockerPanel(停靠面板)Canvas(画布布局)Border(边框)GridSplitter(分割窗口)常用布局控件 Grid:网格,根据自定义行和列来设置控件的布局StackPanel:栈式面板,包含的…...

使用 C# 入门深度学习:线性代数详细讲解

在深度学习的领域中&#xff0c;线性代数是基础数学工具之一。无论是神经网络的训练过程&#xff0c;还是数据的预处理和特征提取&#xff0c;线性代数的知识都无处不在。掌握线性代数的核心概念&#xff0c;对于理解和实现深度学习算法至关重要。在本篇文章中&#xff0c;我们…...