RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-225982

Majestio's questions

Martin Hope
Majestio
Asked: 2025-03-20 04:24:15 +0000 UTC

x86-64 架构程序进入/退出(堆栈对齐问题)

  • 4

出现了以下问题:必须确保 x64 程序的堆栈对齐。事情就应该如此。嗯,好的。对话者立即提出了一个选择:

start: push rax;

第二次还算顺利,没有任何问题。然后,后续与AI的沟通发现,再多做一点就好了:

start:
push rax; Выравниваем стек на 16 байт
; Ваш код
pop rax; Восстанавливаем значение rax (если нужно)
; Тут код завершение программы

随之而来的是,这有多么必要和重要pop rax?据我所知,如果程序终止,内存无论如何都会被释放,对吗?但是有一个“但是”!!! “退出代码”如何正确工作?他到底需pop rax;不需要这个“提前”?

请帮忙回答,或者至少提供建议!

ассемблер
  • 1 个回答
  • 59 Views
Martin Hope
Majestio
Asked: 2024-02-16 13:38:22 +0000 UTC

全局热键注册

  • 5

在程序中您需要注册全局热键Win Z + Z。您需要帮助:

  1. 检查该热键是否忙
  2. 如何将处理程序附加到它

无需建议。需要 fasm 的代码示例。对于M$ Windows的问题,但是如果有X11的解决方案,特别是xfce4的解决方案,我将更加感激!

windows
  • 1 个回答
  • 29 Views
Martin Hope
Majestio
Asked: 2023-08-18 02:11:27 +0000 UTC

使用 Laravel 10 中的查询生成器预制 SELECT

  • 5

如何使用 Laravel 10 的查询生成器表达这样的查询:

SELECT 
 3 AS month_num
UNION
SELECT 
 1
UNION
SELECT 
 2
ORDER BY month_num ASC

这个例子当然是综合的。然后我需要在帮助下附加一个真实的表格JOIN。但我无法启动,这也不起作用。

我尝试了这样的操作,但是错误在没有排序的情况下崩溃了:

$query = $this->select(DB::raw('3 AS month_num'))
              ->union(DB::raw('1'))
              ->union(DB::raw('2'));
php
  • 1 个回答
  • 25 Views
Martin Hope
Majestio
Asked: 2022-08-27 04:20:02 +0000 UTC

Bootstrap 5 基​​于宽度的块放置

  • 2

flexbox请举例说明如何grid使用Bootstrap 5. 您需要提出以下要求:

  1. 只有四个街区
  2. 最小块宽度为240px,真正的块宽度是所有可用的,但不超过512px
  3. 如果所有四个块的宽度都不适合,则需要制作 2x2
  4. 如果 2x2 也不适合宽度,则制作 1x4
  5. 所有块在任何位置居中
  6. 所有块的高度,在任何位置,都是相同的 - 并且等于最高的块,按其内容
  7. 不能使用嵌套块,这是必须的!

让它像这样:

<div>
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
</div>

考虑到要求 1-7,这可以做到吗?

添加(我在 flex 上的版本,嗯,有点像这样):

<div class="d-flex flex-wrap mt-4 mb-4">

  <div class="col-lg-3 col-md-6 col-12 p-1">
    <div class="cards card h-100 shadow-sm">
      <img src="/assets/img/graphic-1.png" class="card-img-top size-64 mx-auto mt-4"/>
      <div class="card-body">
        <h2 class="card-title">Title-1</h2>
        <p class="card-text fs-6">Some text 1.</p>
      </div>
      <a href="link-1.html" class="stretched-link"></a>
    </div>
  </div>

  <div class="col-lg-3 col-md-6 col-12 p-1">
    <div class="cards card h-100 shadow-sm">
      <img src="/assets/img/graphic-2.png" class="card-img-top size-64 mx-auto mt-4"/>
      <div class="card-body">
        <h2 class="card-title">Title-2</h2>
        <p class="card-text fs-6">Some text 2.</p>
      </div>
      <a href="link-2.html" class="stretched-link"></a>
    </div>
  </div>

  <div class="col-lg-3 col-md-6 col-12 p-1">
    <div class="cards card h-100 shadow-sm">
      <img src="/assets/img/graphic-3.png" class="card-img-top size-64 mx-auto mt-4"/>
      <div class="card-body">
        <h2 class="card-title">Title-3</h2>
        <p class="card-text fs-6">Some text 3.</p>
      </div>
      <a href="link-1.html" class="stretched-link"></a>
    </div>
  </div>

  <div class="col-lg-3 col-md-6 col-12 p-1">
    <div class="cards card h-100 shadow-sm">
      <img src="/assets/img/graphic-3.png" class="card-img-top size-64 mx-auto mt-4"/>
      <div class="card-body">
        <h2 class="card-title">Title-3</h2>
        <p class="card-text fs-6">Some text 3.</p>
      </div>
      <a href="link-3.html" class="stretched-link"></a>
    </div>
  </div>

 </div>
html flexbox
  • 1 个回答
  • 48 Views
Martin Hope
Majestio
Asked: 2022-06-03 15:06:49 +0000 UTC

使背景变亮的动画 SVG 蒙版

  • 3

我们需要如下动画效果:

加载了某种背景的 HTML 页面,尽管是深蓝色的。
1s 后,SVG 图像从上到下向屏幕中心滑动,这只会使现有背景变亮(充当蒙版)。

应该看起来像这样:

在此处输入图像描述

请帮助实施,或至少提示在哪里挖掘。如果没有 Javascript - 它通常会超级棒!

javascript
  • 3 个回答
  • 10 Views
Martin Hope
Majestio
Asked: 2022-08-16 13:16:27 +0000 UTC

可重复的 SVG 动画,在重复之间有停顿

  • 3

我正在尝试想出一种方法来暂停重复动画。但至今陷入了死胡同。

编辑

在此处输入图像描述

需要下一个效果

字母“SVG”应该每 10 秒运行一次明亮的蓝线(您可以有两条不同的线,如图所示),斜率为 125⁰ - 在图中,黑线表示近似角度。红色箭头 - 表示滑动线的方向。线条应该快速“运行”,即使在 1 秒内。

我相信它可以以某种方式完成。但到目前为止,想象力还不够。也许您可以以某种方式使用蒙版形式的图层叠加并使用z-index?我寻求帮助,我寻求想法。

svg
  • 3 个回答
  • 10 Views
Martin Hope
Majestio
Asked: 2022-07-01 15:27:47 +0000 UTC

CSS样式覆盖不起作用

  • 1

有一个标记的html页面。在框架块的样式文件中,我指定了初始字体大小。然后在其中一个嵌套元素中,我尝试更改字体大小。但这并没有发生!尽管在其样式文件中 - 嵌套元素的字体大小的声明发生在框架块的定义之后。Vivaldi显示如下:

截屏

出路:我!important为嵌套元素添加了字体大小的定义,然后一切正常。

问题:为什么会发生这种情况,是否有可能没有!important?

PS。我在页面中的样式文件是最后定义的,如果有的话。

html
  • 1 个回答
  • 10 Views
Martin Hope
Majestio
Asked: 2021-12-27 04:04:26 +0000 UTC

网格布局中的比例宽度填充

  • 6

有这个标记使用grid:

.wrapper {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
}

.wrapper > div {
  background: gray;
  text-align: center;
  margin: 1px;
}
<div class="wrapper">
  <div>A</div>
  <div>B</div>
  <div>C</div>
  <div>D</div>
  <div>E</div>
</div>

在某些时候,最后两个块会换行到第二行。可以添加什么以使转移的块开始按比例占据 50% 的整个宽度而不诉诸flex?

在此处输入图像描述

html
  • 2 个回答
  • 10 Views
Martin Hope
Majestio
Asked: 2021-11-20 13:59:47 +0000 UTC

基于价值的排名

  • 1

在许多竞技赛事中,通常习惯于建立评分——球员、球队、设备、算法等……在这种情况下,评分中的位置是确定的(我们称之为“价值”)参与者。这是最有趣的。谁定义价值以及如何定义价值?在一些评级中,他们只是将胜利次数与失败次数进行划分,而在其他评级中,他们还考虑了连续胜利的次数。一般来说,谁在乎什么。但是,一个赢了零赢的人的成本是多少?他的排名胜利点是多少?可能,不仅要考虑赢了多少,还要考虑谁?!

问题

有一个“综合”的例子,比生活中通常发生的更简单。有必要找到一种算法来计算ценности比赛中最合适的参与者。该算法可以用任何编程语言编写,主要是给出口头描述以及为什么会这样而不是其他原因的原因。

综合例子

有参赛者 [A,B,C,D,E,F,G]。作为比赛的结果,每位参赛者每人交手两次,无论输赢。没有平局。Ценность必须在小数范围内确定1.0 - 0.0,其中最有价值的接收1.0和最不有价值的0.0。会议结果表如下:

结果表

PS。实际上,一切都要复杂得多 - 参与者可能在评级时根本没有见面,或者他们可能会见面两次以上。

алгоритм
  • 1 个回答
  • 10 Views
Martin Hope
Majestio
Asked: 2021-10-31 21:48:55 +0000 UTC

UTF-8 的拉丁文和俄文字母的正则表达式

  • 1

至于编码cp866,那么我们可以看一下字符表,看看这些字符在表中的字符顺序,做一个简单的正则表达式,通过连续的范围排序:

[A-Za-zА-пр-ё]+

因为UTF-8没有什么比这更重要的了:

[A-Za-zАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя]+

是否有可能做一些更紧凑的事情UTF-8?

регулярные-выражения
  • 2 个回答
  • 10 Views
Martin Hope
Majestio
Asked: 2020-08-27 13:59:31 +0000 UTC

未使用参数的指定 [[maybe_unused]]

  • 3

在重新定义虚方法的过程中,在不使用单个参数的情况下,为了避免编译器警告,可以省略参数的名称。例如:

bool MainWindow::nativeEvent(const QByteArray&, 
                             void *message,
                             long *)

但是,从 开始С++17,出现了属性,其中之一是[[maybe_unused]]。它允许您像这样重写上面的代码:

bool MainWindow::nativeEvent([[maybe_unused]] const QByteArray& eventType, 
                             void *message,
                             [[maybe_unused]] long *result)

一个简单的问题,这个“创新”有什么用?到目前为止,我看到代码只是在增长。好吧,作为最后的手段,在调试模式下使用该参数,而不是在发布时使用它。

c++
  • 2 个回答
  • 10 Views
Martin Hope
Majestio
Asked: 2020-07-26 08:46:39 +0000 UTC

带有回调过程的程序并行化

  • -1

用“演员”草拟了一个节目Producer/Consumer。该程序在一个线程中执行。性能很原始。Producer执行某个动作,周期性地“报告”Consumer'у执行状态,同时轮询是否需要中断处理。在处理结束时,报告处理结束。下面的代码:

#include <functional>
#include <iostream>
#include <thread>

using namespace std::chrono_literals;

using TypeCallbackRun = std::function<void (int)>;
using TypeCallbackBreak = std::function<bool (int)>;
using TypeCallbackFinish = std::function<void ()>;

// ───────────────────────────────────────────────────────────────────────────────────

class Producer {
    TypeCallbackRun CallbackRun;
    TypeCallbackBreak CallbackBreak;
    TypeCallbackFinish CallbackFinish;
  public:
    void Run() {
      std::cout << "Run started (10 times) ...\n";
      for (int i = 0; i < 10; ++i) {
        if (CallbackBreak && CallbackBreak(i)) break;
        if (CallbackRun) CallbackRun(i);
        std::this_thread::sleep_for(100ms);
      }
      if (CallbackFinish) CallbackFinish();
      std::cout << "\nRun finished\n";
    }
    void SetCallbacks(TypeCallbackRun r, TypeCallbackBreak b, TypeCallbackFinish f) {
      CallbackRun = r;
      CallbackBreak = b;
      CallbackFinish = f;
    }
};

// ───────────────────────────────────────────────────────────────────────────────────

class Consumer {
  public:
    bool Ready = false;
    void ProcCallbackRun(const int i) {
      std::cout << i << " ";
    }
    bool ProcCallbackBreak(const int i) {
      return i > 4;
    }
    void ProcCallbackFinish() {
      Ready = true;
    }
};

// ───────────────────────────────────────────────────────────────────────────────────

int main() {
  Producer Prod;
  Consumer Cons;
  //
  //  так
  //
  Prod.SetCallbacks(
    std::bind(&Consumer::ProcCallbackRun, &Cons, std::placeholders::_1),
    std::bind(&Consumer::ProcCallbackBreak, &Cons, std::placeholders::_1),
    std::bind(&Consumer::ProcCallbackFinish, &Cons)
  );
  //
  //  ну или так
  //
  //  Prod.SetCallbacks(
  //  [&](int i) {
  //    Cons.ProcCallbackRun(i);
  //  },
  //  [&](int i) {
  //    return Cons.ProcCallbackBreak(i);
  //  },
  //  [&]() {
  //    Cons.ProcCallbackFinish();
  //  });
  Prod.Run();
  return 0;
}

问题

如何Producer使用 C++11/14/17 在单独的线程中运行,以便关于“处理状态”、“所需中断”、“处理结束”的“消息”功能保持运行?好吧,或者以某种方式实现类似的东西。

假设处理等待代码将是这样的:

for (int i = 0; i < 100000; i++) {
  if (Cons.Ready) break;
  std::this_thread::sleep_for(10ms);
}

IE。线程 cProducer必须立即用std::thread::detach 分离

c++
  • 1 个回答
  • 10 Views
Martin Hope
Majestio
Asked: 2020-07-22 11:21:42 +0000 UTC

指向 std::function 的指针立即进入方法

  • 0

我画了这个例子:

#include <iostream>
#include <functional>

// ──────────────────────────────────────────────────────────────────────────────

using CallbackType = std::function<void(void*)>;

// ──────────────────────────────────────────────────────────────────────────────

class Karbofos {
  
    CallbackType *Begin = nullptr;
    CallbackType *End = nullptr;
  
  public:
  
    const std::string Name = "Карбофос";
    
    void SetCallback(CallbackType *B, CallbackType *E) {
      Begin = B;
      End = E;
    }
    
    void Run() {
      if (Begin) (*Begin)(this);
      std::cout << "- Не отдам, слон - мой!\n";
      if (End) (*End)(this);
    }
};

// ──────────────────────────────────────────────────────────────────────────────

void Shef(void* i) {
  std::cout << "- Стой, живодер " << ((Karbofos*)(i))->Name << "!\n";   
}

// ──────────────────────────────────────────────────────────────────────────────

void Kollega(void* i) {
  std::cout << "- " << ((Karbofos*)(i))->Name << ", ты немец и контрабандист!\n";   
}

// ──────────────────────────────────────────────────────────────────────────────

int main() {
  Karbofos Object;  
  CallbackType S = Shef;
  CallbackType K = Kollega;
  Object.SetCallback(&S,&K);
  Object.Run();
  return 0;
}

问题

是否有可能以某种方式不使用临时变量Chef,Kollega并立即将必要的引用传递给该方法SetCallback?

c++
  • 2 个回答
  • 10 Views
Martin Hope
Majestio
Asked: 2020-06-29 13:15:37 +0000 UTC

按月优化查询

  • 1

该表有一个字段“活动”,实际上,其中记录了一个时间戳。我需要某一年(比如说 2020 年)按月显示记录数。结果应该是包含 12 个字段的记录。我做了这个查询:

SELECT
  SUM(F1)  AS 'M1',
  SUM(F2)  AS 'M2',
  SUM(F3)  AS 'M3',
  SUM(F4)  AS 'M4',
  SUM(F5)  AS 'M5',
  SUM(F6)  AS 'M6',
  SUM(F7)  AS 'M7',
  SUM(F8)  AS 'M8',
  SUM(F9)  AS 'M9',
  SUM(F10) AS 'M10',
  SUM(F11) AS 'M11',
  SUM(F12) AS 'M12'
FROM (
  SELECT
    CASE WHEN strftime('%m', datetime(G.Activity, 'unixepoch')) = '01'  THEN COUNT(G.Activity) ELSE 0 END AS 'F1',
    CASE WHEN strftime('%m', datetime(G.Activity, 'unixepoch')) = '02'  THEN COUNT(G.Activity) ELSE 0 END AS 'F2',
    CASE WHEN strftime('%m', datetime(G.Activity, 'unixepoch')) = '03'  THEN COUNT(G.Activity) ELSE 0 END AS 'F3',
    CASE WHEN strftime('%m', datetime(G.Activity, 'unixepoch')) = '04'  THEN COUNT(G.Activity) ELSE 0 END AS 'F4',
    CASE WHEN strftime('%m', datetime(G.Activity, 'unixepoch')) = '05'  THEN COUNT(G.Activity) ELSE 0 END AS 'F5',
    CASE WHEN strftime('%m', datetime(G.Activity, 'unixepoch')) = '06'  THEN COUNT(G.Activity) ELSE 0 END AS 'F6',
    CASE WHEN strftime('%m', datetime(G.Activity, 'unixepoch')) = '07'  THEN COUNT(G.Activity) ELSE 0 END AS 'F7',
    CASE WHEN strftime('%m', datetime(G.Activity, 'unixepoch')) = '08'  THEN COUNT(G.Activity) ELSE 0 END AS 'F8',
    CASE WHEN strftime('%m', datetime(G.Activity, 'unixepoch')) = '09'  THEN COUNT(G.Activity) ELSE 0 END AS 'F9',
    CASE WHEN strftime('%m', datetime(G.Activity, 'unixepoch')) = '10'  THEN COUNT(G.Activity) ELSE 0 END AS 'F10',
    CASE WHEN strftime('%m', datetime(G.Activity, 'unixepoch')) = '11'  THEN COUNT(G.Activity) ELSE 0 END AS 'F11',
    CASE WHEN strftime('%m', datetime(G.Activity, 'unixepoch')) = '12'  THEN COUNT(G.Activity) ELSE 0 END AS 'F12'
  FROM Guests AS G
  WHERE strftime('%Y', datetime(G.Activity, 'unixepoch')) = '2020'
  GROUP BY strftime('%m', datetime(G.Activity, 'unixepoch'))
)

请求工作正常。但在我看来,它变得太麻烦了。可以重写/优化吗?

sql
  • 1 个回答
  • 10 Views
Martin Hope
Majestio
Asked: 2020-06-26 15:22:16 +0000 UTC

没有 Qt 的 QtCreator

  • 1

我决定尝试使用 GUI 或者 - Nana。但没想到她会有这么多麻烦。很难理解为什么最新 Qt 发行版中包含的“常规”MinGW32 7.3.0 不想编译该库。好吧,我想,它们都处于“标准的高峰期”……我安装了 MSYS,其中包括 GCC 已经在 10.1.0 版中——无论它是如何组装的。

但随后出现了编译测试用例的问题。不择手段,我打发了很多时间搜索,仍然骗取了一个工作批处理文件进行组装:

@echo off
SET PATH=C:\Tools\Msys64\mingw64\bin;%PATH%

C:\Tools\Msys64\mingw64\bin\g++.exe ^
 -IC:\Projects\c++\Nana\mingw-x64\include ^
 -LC:\Projects\c++\Nana\mingw-x64\lib ^
 -std=c++17 ^
 main.cpp -O3 -o NanaTest.exe ^
 -lnana -lgdi32 -lcomdlg32 -lz -Wl,-subsystem,windows ^
 -static -lpthread

strip NanaTest.exe

现在的问题是 - 如何根据 QtCreator 的 .pro 文件中的设置分散所有这些?

在 QtCreator 中创建了 MSYS 套件的必要配置文件。

c++
  • 2 个回答
  • 10 Views
Martin Hope
Majestio
Asked: 2020-06-18 20:13:34 +0000 UTC

使用 QDialog::nativeEvent 时 QLabel 重绘(连接/断开 USB 设备)

  • 0

我编写了一个工作测试程序来监控 USB 设备的连接/断开连接。就我而言,这是一个读卡器,系统将其识别为 USB 输入设备和 HID USB。但是有一个难以理解的时刻 - 当我的插槽被触发(参见下面的代码)Dialog::SlotArrived并且Dialog::SlotRemoved文本仅在第一次更改时。但是,如果您将鼠标指针移到 thisQLabel上,则会重新绘制它。找到了出路——QLabel::setText如果放置后QLabel::repaint,那么渲染是正常的。下面是项目的正文。你能告诉我我哪里写错了吗...

使用 Qt 5.14.1,С++17,编译器版本 19.16.27035 来自 studio 2017

UsbTestWatcher.pro

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++17

# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

SOURCES += \
    main.cpp \
    dialog.cpp

HEADERS += \
    dialog.h

LIBS += -lUser32

# Fuck windows-1251 !!!
QMAKE_EXTRA_TARGETS += before_build makefilehook
makefilehook.target = $(MAKEFILE)
makefilehook.depends = .beforebuild
PRE_TARGETDEPS += .beforebuild
before_build.target = .beforebuild
before_build.depends = FORCE
before_build.commands = chcp 1251

主文件

#include <QApplication>
#include "dialog.h"

int main(int argc, char *argv[]) {
    QApplication a(argc, argv);
    Dialog w;
    w.show();
    return a.exec();
} 

对话框.h

#ifndef DIALOG_H
#define DIALOG_H
#include <QtWidgets>
#include <dbt.h>

class Dialog : public QDialog {
        Q_OBJECT
        QLabel *L;
        bool nativeEvent(const QByteArray& eventType, void *message, long *result);
    public:
        Dialog(QWidget *parent = nullptr);
        ~Dialog() {}
    public slots:
        void SlotRegister();
        void SlotArrived(QString iName);
        void SlotRemoved(QString iName);
    signals:
        void SigUsbArrived(QString iName);
        void SigUsbRemoved(QString iName);
};
#endif // DIALOG_H

对话框.cpp

#include "dialog.h"

//
// Можно расширить своими классами USB-устройств, тех которые нужно отслеживать
//

static const GUID GUID_DEVINTERFACE_LIST[] = {
    // USB Raw Device Interface Class GUID
    {   0xa5dcbf10, 0x6530, 0x11d2, {0x90, 0x1f, 0x00, 0xc0, 0x4f, 0xb9, 0x51, 0xed}},
    // Disk Device Interface Class GUID
    {   0x53f56307, 0xb6bf, 0x11d0, {0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b}},
    // Human Interface Device Class GUID
    {   0x4d1e55b2, 0xf16f, 0x11Cf, {0x88, 0xcb, 0x00, 0x11, 0x11, 0x00, 0x00, 0x30}},
    // FTDI_D2XX_Device Class GUID
    {   0x219d0508, 0x57a8, 0x4ff5, {0x97, 0xa1, 0xbd, 0x86, 0x58, 0x7c, 0x6c, 0x7e}},
    // FTDI_VCP_Device Class GUID
    {   0x86e0d1e0, 0x8089, 0x11d0, {0x9c, 0xe4, 0x08, 0x00, 0x3e, 0x30, 0x1f, 0x73}}
};

Dialog::Dialog(QWidget *parent)
    : QDialog(parent) {
    L = new QLabel("Можно читать список usb-устройств при старте ...");
    QVBoxLayout *H = new QVBoxLayout();
    H->addWidget(L);
    setLayout(H);
    setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
    connect(this, &Dialog::SigUsbArrived, this, &Dialog::SlotArrived);
    connect(this, &Dialog::SigUsbRemoved, this, &Dialog::SlotRemoved);
    QTimer::singleShot(100, this, &Dialog::SlotRegister);
}

void Dialog::SlotRegister() {
    DEV_BROADCAST_DEVICEINTERFACE NotificationFilter;
    ZeroMemory(&NotificationFilter, sizeof(NotificationFilter));
    NotificationFilter.dbcc_size = sizeof(DEV_BROADCAST_DEVICEINTERFACE);
    NotificationFilter.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE;
    HWND hw = (HWND) this->effectiveWinId();
    for (size_t i = 0; i < sizeof(GUID_DEVINTERFACE_LIST) / sizeof(GUID); i++) {
        NotificationFilter.dbcc_classguid = GUID_DEVINTERFACE_LIST[i];
        HDEVNOTIFY hDevNotify = RegisterDeviceNotification(hw, &NotificationFilter,
                                                           DEVICE_NOTIFY_WINDOW_HANDLE);
        if (!hDevNotify) {
            QMessageBox::critical(this, "Ошибка", "Ошибка регистрации уведомителя!");
            emit close();
        }
    }
}

void Dialog::SlotArrived(QString iName) {
    L->setText(QString("Подключено: %1").arg(iName));
    L->repaint();
    qDebug() << QString("Подключено: %1").arg(iName);
}

void Dialog::SlotRemoved(QString iName) {
    L->setText(QString("Отключено: %1").arg(iName));
    L->repaint();
    qDebug() << QString("Отключено: %1").arg(iName);
}

bool Dialog::nativeEvent([[maybe_unused]] const QByteArray& eventType, void *message,
                                                 [[maybe_unused]] long *result) {
    MSG *msg = static_cast< MSG * >(message);
    int msgType = msg->message;
    if (msgType == WM_DEVICECHANGE) {
        if (msg->wParam == DBT_DEVICEARRIVAL || msg->wParam == DBT_DEVICEREMOVECOMPLETE) {
            PDEV_BROADCAST_HDR lpdb = (PDEV_BROADCAST_HDR)msg->lParam;
            PDEV_BROADCAST_DEVICEINTERFACE lpdbv = (PDEV_BROADCAST_DEVICEINTERFACE) lpdb;
            if (lpdb->dbch_devicetype == DBT_DEVTYP_DEVICEINTERFACE) {
                QString path = QString::fromWCharArray(lpdbv->dbcc_name);
                if (msg->wParam == DBT_DEVICEARRIVAL)
                    emit SigUsbArrived(path);
                else
                    emit SigUsbRemoved(path);
                return true;
            }
        }
    }
    return false;
}
c++
  • 1 个回答
  • 10 Views
Martin Hope
Majestio
Asked: 2020-05-01 04:58:33 +0000 UTC

使用 Bootstrap 4 进行混合块对齐

  • 0

您能否告诉我是否可以使用 Bootstrap 4 执行以下标记:

标记示例

  1. 第一种情况是宽度远大于将元素放在一行上所需的宽度。1、2、3块向左压,4块向右压;
  2. 第二种情况是端到端的宽度。本质上,块对齐与前一种情况类似,但在视觉上,块只是接触;
  3. 第三种情况是没有足够的宽度将所有四个块放在一行中。块应放置在两行中。在这种情况下,应将块 1.3 压到左侧,将块 2.4 压到右侧。

重要的!

建议使用 bootstrap 4 弹性项目,如果可能,不要通过 CSS 使用其他样式。

flexbox
  • 1 个回答
  • 10 Views
Martin Hope
Majestio
Asked: 2020-11-06 23:54:46 +0000 UTC

用 JavaScript 控制 GIF 动画

  • 3

有没有办法控制动画GIFvia的动画JavaScript?如果有办法,怎么做?

需要四个步骤:

  1. GIF在页面加载时显示动画并暂停动画
  2. 开始动画
  3. 停止动画
  4. 改变动画方向
javascript
  • 1 个回答
  • 10 Views
Martin Hope
Majestio
Asked: 2020-08-14 19:50:57 +0000 UTC

替换下拉菜单中的铭文 Bootstrap 4

  • 0

有一个使用 bootstrap 4 制作的组合框,例如:

<div class="dropdown">
  <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Корпоратив
  </button>
  <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
    <a class="dropdown-item" href="#">Корпоратив</a>
    <a class="dropdown-item" href="#">Банкет</a>
    <a class="dropdown-item" href="#">Свадьба</a>
    <a class="dropdown-item" href="#">Другое</a>
  </div>
</div>

问题

  1. 选择元素后如何更改组合框中的文本?在上面的示例中,如果我选择“宴会”。组合框应该关闭,而不是原来的“公司党”字样,应该变成“宴会”字样。

  2. 我需要将选定的值作为表单字段传输 - 将传输什么以及从何处传输?

ADD:<select>也许只使用它并重新构建它是有意义的?

dropdown
  • 1 个回答
  • 10 Views
Martin Hope
Majestio
Asked: 2020-06-14 14:05:16 +0000 UTC

将多维结构转换为一维

  • 2

是否可以很好地使用.iter() .into_iter() .map()并从每个变量, , , , 中.rev()获得Vec<i32>相等?还是没有?如果可能,请告诉我如何。[6,5,4,3,2,1]x1x2x3x4x5for

fn main() {

  let x1 = vec![vec![1,2],vec![3,4],vec![5,6]];
  let x2 = vec![[1,2],[3,4],[5,6]];
  let x3 = [vec![1,2],vec![3,4],vec![5,6]];
  let x4 = [[1,2],[3,4],[5,6]];
  let x5 = [[[1],[2]],[[3],[4]],[[5],[6]]];

}
rust
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5