小编sil*_*gan的帖子

如何在失去焦点时隐藏QML窗口

我正在尝试使用QML创建一个包含多个选择的组合框.它的下拉列表将是一个带有Qt.Popup标志的QML窗口,因此它没有标题栏.当用户点击它之外时,下拉列表应该会消失.

我尝试了以下代码:

import QtQuick 2.0
import QtQuick.Window 2.0

Window { id: mainWindow
    width: 200
    height: 200
    MouseArea {
        anchors.fill: parent
        onClicked: {
            dropdown.x = mainWindow.x + 50;
            dropdown.y = mainWindow.y + 50;
            dropdown.visible = true;
        }
    }

    Window { id: dropdown
        height: 200
        width: 200
        flags: Qt.Popup
        color: 'green'
        visible: false
        onVisibleChanged: {
            if (visible) {
                focusScope.focus = true;
                focusScope.forceActiveFocus();
            }
        }

        FocusScope { id: focusScope
            focus: true
            anchors {
                fill: parent
            }

            onActiveFocusChanged: {
                if (!activeFocus) {
                    dropdown.visible = …
Run Code Online (Sandbox Code Playgroud)

qt qml

10
推荐指数
1
解决办法
1万
查看次数

使用keyCode = 229忽略keydown事件是否可以?

一开始我想要<input type="text">实时监控a的变化(例如,当用户按下某个键时).该onChange事件不起作用,因为仅当用户按Enter键或从输入元素中移除焦点时才会触发该事件.然后我在StackOverflow上看到了这个问题.我尝试了该答案中的代码,但问题是我不希望收到不能代表可打印字符的按键通知,因此我必须以这种方式对其进行修改以使其验证事件中是否存在可打印字符:

...

textInputElement.onKeyDown.listen((KeyboardEvent ev) {
  if (new String.fromCharCode(ev.keyCode).length > 0) {
    callAFunction();
  }
});

...
Run Code Online (Sandbox Code Playgroud)

(+ onKeyUp事件的相同变化)

当我在Dartium中测试时,我看到通过聚焦输入元素然后按任意键,keydownev.keyCode = ev.which = 229和触发事件ev.charCode = 0.在此事件发生后,立即keydown触发另一个事件ev.keyCode = ev.which,并按下正确的键ev.charCode = 0.我不明白这把229钥匙来自哪里,但我看到它是一个可打印的角色,å.我搜索了互联网,我发现其他人有这个问题,有时他们正在使用其他编程语言和技术.一个相关的链接是这个,选择的修复是在这个非常小的提交 - 他们选择忽略所有事件,并keyCode = 229解释最近版本的Chrome/Chromium/WebKit开始在每个标准键盘事件之前发送这些keydown事件,并且他们的意思是用户按下了一些按钮.但输入法仍在处理输入法编辑器处理键输入.

我的问题是,keydownkeyCode = 229if new String.fromCharCode(229)返回可打印字符" å" 可以忽略事件吗?我想到了一个产生相同密钥代码及其相应字符的真实密钥的可能情况.

我感谢你提供任何帮助!

javascript events keyboard-events dart dartium

9
推荐指数
1
解决办法
2万
查看次数

如何在垂直 Gtk.Box 内水平居中 Gtk.Grid?

我有一个 Grid ,其中包含 Frames 中的一些标签,使其看起来像一张桌子。这个网格被插入一个垂直的盒子中,其中直接子标签正确居中(它们以与网格相同的方式打包在盒子中)。

我的简化代码是这样的:

import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk

window = Gtk.Window()

g = Gtk.Grid()  # this should be in the horizontal center of the window
g.attach(Gtk.Label("This should be centered but it is not."), 0, 0, 1, 1)

b = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
b.pack_start(g, True, False, 0)  # The same behavior with: b.pack_start(g, True, True, 0)
b.pack_start(Gtk.Label("This label is centered as it should be. Try to resize the window."), True, False, 0)

window.add(b)

window.connect("delete-event", Gtk.main_quit)
window.show_all()
Gtk.main() …
Run Code Online (Sandbox Code Playgroud)

window grid-layout python-2.7 gtk3 msys2

7
推荐指数
1
解决办法
2541
查看次数

如何在生成代码文档时删除意外缩进警告的原因?

带有问题的文档代码位于方法的开头:

"""
Gtk.EventBox::button-release-event signal handler.
:param widget: The clicked widget (The Gtk.EventBox).
:param event: Gdk.EventButton object with information regarding
       the event.
:param user_data: The Gtk.LinkButton that should be opened when
       the Gtk.EventBox is clicked.
:return: None
"""
Run Code Online (Sandbox Code Playgroud)

警告是:

C:/msys64/home/hope/python+gtk/test/main.py:docstring of main.Builder.advertisem
ent_clicked:4: WARNING: Unexpected indentation.
C:/msys64/home/hope/python+gtk/test/main.py:docstring of main.Builder.advertisem
ent_clicked:5: WARNING: Block quote ends without a blank line; unexpected uninde
nt.
Run Code Online (Sandbox Code Playgroud)

如何删除这些警告及其原因?

restructuredtext python-2.7 python-sphinx msys2 windows-10

7
推荐指数
2
解决办法
4985
查看次数

不能在Qt中使用libclang

当我尝试在Qt应用程序中使用libclang时遇到了一个奇怪的错误.

TEST.CPP

#include <QApplication>
#include <QMainWindow>

#include <clang-c/Index.h>

int main (int argc, char *argv[]) {
    QApplication a(argc, argv);

    QMainWindow w;
    w.show();

    CXIndex index = clang_createIndex(0, 0);
    Q_UNUSED(index)

    return a.exec();
}
Run Code Online (Sandbox Code Playgroud)

test.pro

QT += core widgets

TARGET = test
TEMPLATE = app

SOURCES += test.cpp

LIBS += -lclang
Run Code Online (Sandbox Code Playgroud)

Shell命令和输出:

$ ls
test.cpp test.pro
$ qmake
$ make
g++ -c -pipe -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/qt/mkspecs/linux-g++ -I. -I/usr/include/qt -I/usr/include/qt/QtWidgets -I/usr/include/qt/QtGui -I/usr/include/qt/QtCore -I. …
Run Code Online (Sandbox Code Playgroud)

c++ qt clang libclang

6
推荐指数
1
解决办法
916
查看次数

如何在TableView rowDelegate中右键单击显示上下文菜单

我想在右键单击TableView行时显示上下文菜单.我试过这段代码:

import QtQuick 2.0
import QtQuick.Controls 1.0

TableView { id: tableView
    width: 300
    height: 200

    TableViewColumn { role: 'a'; title: 'a'; width: 50 }
    TableViewColumn { role: 'b'; title: 'b'; width: 50 }
    model: ListModel {
        ListElement { a: 1; b: 2 }
        ListElement { a: 3; b: 4 }
        ListElement { a: 5; b: 6 }
        ListElement { a: 7; b: 8 }
        ListElement { a: 9; b: 10 }
        ListElement { a: 11; b: 12 }
    }

    Menu …
Run Code Online (Sandbox Code Playgroud)

qt qml qt-quick qtquick2 qt5.1

6
推荐指数
1
解决办法
7384
查看次数

如何找到方法所属的实例?

//缩小基类代码(如果需要未压缩的代码,我将发布它)函数Class(){} Class.prototype.construct = function(){}; Class.extend = function(c){var a = function(){arguments [0]!== Class && this.construct.apply(this,arguments)},d = new this(Class),f = this.prototype; for(var e in c){var b = c [ e]; if(b instanceof Function)b.$ = f; d [e] = b} a.prototype = d; a.extend = this.extend; return a};

// custom event class
var Event = Class.extend({
    handlers: [],
    // stores the event handler
    subscribe: function(handler, thisObj) {
        this.handlers.push([handler, thisObj]);
    },
    // calls the event handlers
    fire: function() {
        for(i in this.handlers) {
            var …
Run Code Online (Sandbox Code Playgroud)

javascript

5
推荐指数
1
解决办法
123
查看次数

如何发送存储的模板并指定reply_to、from.name 和from.email?

这里解释了如何在发送内联内容时指定这些属性,但在发送存储的模板时据说它们是被禁止的。

我尝试通过指定模板的 ID 以及禁止的属性:reply_tofrom.name和来发送电子邮件from.email,并且禁止的属性被忽略。

在发送事务性电子邮件时,我发现将 Reply-To 标头设置为正常而非异常,但我发现在发送存储的模板时无法执行此操作很奇怪。从代码而不是从 SparkPost 模板编辑器设置发件人姓名和电子邮件似乎也是一个很好的功能。

我的代码如下所示(它使用 SparkPost NodeJS API,并且使用此代码成功发送了带有替换数据的电子邮件,因此问题不在substitution_datarecipients或此代码的回调部分中):

client.transmissions.send({
    transmissionBody: {
        content: {
            template_id: 'my-first-email',
            reply_to: 'example@sparkpostbox.com', // example email address
            from: {
                name: 'My Name',
                email: 'example2@sparkpostbox.com'
            }
        },
        substitution_data: { /* ... */ },
        recipients: [ /* ... */ ]
    }
}, function (err, res) { /* ... */ });
Run Code Online (Sandbox Code Playgroud)

更新:我在 SparkPost 支持中心发现了这个问题,但它对我没有帮助。

更新 2:我还发现这个支持问题可能会有所帮助,但我仍然需要一种设置Reply-To …

javascript email node.js sparkpost

5
推荐指数
1
解决办法
869
查看次数

如何删除 IndicatorContainer(IndicatorsContainer 的第一个子级)的填充?

我正在尝试缩小反应选择的选择组件的大小。除了一个例外,一切都运行得很好。

\n

我希望删除其填充的元素具有此类:css-tlfecz-indicatorContainer并且是反应选择的子组件Select组件的子组件,更准确地说,是负责渲染\xc3\x97符号以清除选择的子组件。

\n

我尝试将其放入 Select 的 styles 属性中:

\n
indicatorsContainer: (provided, state) => {\n  return {\n    ...provided,\n    padding: \'0px\',\n    paddingLeft: \'0px\',\n    paddingTop: \'0px\',\n    paddingRight: \'0px\',\n    paddingDown: \'0px\',\n  };\n},\n
Run Code Online (Sandbox Code Playgroud)\n

但这不起作用。我期望有一个 IndicatorContainer 可样式组件,这样我就不必用自己的组件覆盖组件,但我认为这是唯一的方法。

\n

如果我从 DevTools\' Elements 选项卡手动更改样式,则选择的屏幕截图如下:

\n

截屏

\n

没有错误消息。

\n

谢谢。

\n

javascript reactjs react-select

5
推荐指数
1
解决办法
2135
查看次数

更改QML ListView的模型不会更改相应的委托

下面我创建一个ListView,其中包含一个CheckBox,其checked属性绑定到模型的checked角色.单击委托时,我想通过更改模型的checked属性来切换CheckBox状态.但之间的结合checkBox.checkedmodel.checked工程仅在第一次用户点击该委托.之后,checkBox始终检查,与model.checked值无关.结果是用户无法取消选中该复选框,我不希望这样.

import QtQuick 2.2
import QtQuick.Controls 1.1

ListView { id: listView
    height: 100
    width: 100

    model: ListModel {
        ListElement { checked: false }
        ListElement { checked: false }
    }

    delegate: Rectangle {
        width: listView.width
        implicitHeight: checkBox.implicitHeight * 1.3

        CheckBox { id: checkBox
            anchors.fill: parent
            text: index + 1
            checked: model.checked
        }

        MouseArea { id: mouseArea
            anchors.fill: parent
            onClicked: {
                var item = listView.model.get(index);

                console.log('old model.checked:', model.checked); …
Run Code Online (Sandbox Code Playgroud)

qt qml qt-quick qtquick2

4
推荐指数
1
解决办法
5169
查看次数

如何避免带有圆角的可缩放用户控件的彩色边框的视觉伪影?

我有一个Form其中包含:

  1. a TrackBar(最小值 = 1,最大值 = 200,表示缩放百分比);
  2. 与.UserControlBorderStyle = BorderStyle.None

相关代码

表格1

来自设计师代码

trackBar1.Value = 100;
BackColor = Color.Gray;
Run Code Online (Sandbox Code Playgroud)

从代码隐藏

private void trackBar1_Scroll(object sender, EventArgs e)
{
    userControl11.SetZoomFactor(trackBar1.Value / 100F);
}
Run Code Online (Sandbox Code Playgroud)

用户控制1

internal float MyBaseWidth;

public UserControl1()
{
    InitializeComponent();

    MyBaseWidth = Width;

    SetZoomFactor(1);
}

protected override void OnPaint(PaintEventArgs e)
{
    base.OnPaint(e);

    e.Graphics.SmoothingMode = SmoothingMode.HighQuality;
    e.Graphics.CompositingQuality = CompositingQuality.HighQuality;
    e.Graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;

    Pen p = new Pen(Color.Yellow);
    e.Graphics.DrawPath(p, GraphicsPathWithBorder);
}

internal GraphicsPath GraphicsPathWithBorder;

internal void SetZoomFactor(float …
Run Code Online (Sandbox Code Playgroud)

c# user-controls rounded-corners visual-artifacts winforms

4
推荐指数
1
解决办法
1111
查看次数

如何正确使用 Redux Toolkit 中的 createAsyncThunk 和 TypeScript?

我想为我所从事的项目内的用户创建一个 Redux 切片。我有这个代码沙箱fetchAll,我不知道为什么文件中的调用出现以下错误MyButton.tsx

fetchAll(arg:any): AsyncThunkAction<未知,任意,{}>

预期有 1 个参数,但得到 0 个。

createAsyncThunk.d.ts(107, 118):未提供“arg”参数。

我在我从事的项目中有类似的代码,但它没有这个错误。我希望它能像在其他类似文件中一样工作。

沙箱中的相关文件:

我的按钮.tsx

import React from "react";
import { useDispatch } from "react-redux";
import { fetchAll } from "./redux/usersSlice";

export const MyButton = ({ children }: { children: any }) => {
  const dispatch = useDispatch();

  return (
    <button
      onClick={() => {
        dispatch(fetchAll()); // I get an error on this fetchAll() call
      }}
    >
      {children}
    </button>
  );
};
Run Code Online (Sandbox Code Playgroud)

fetchAll 的定义

export const fetchAll …
Run Code Online (Sandbox Code Playgroud)

dispatch typescript redux react-redux redux-toolkit

4
推荐指数
2
解决办法
7043
查看次数

sys.maxsize 当前可能的值是什么?

最新的 Python 2 文档中

sys.maxsize

平台的 Py_ssize_t 类型支持的最大正整数,因此列表、字符串、字典和许多其他容器可以拥有的最大大小。

最新的 Python 3 文档中

sys.maxsize

一个整数,给出 Py_ssize_t 类型的变量可以采用的最大值。在 32 位平台上通常是 2**31 - 1,在 64 位平台上通常是 2**63 - 1。

该值sys.maxsize在该文件中使用Python 3文档中指定的值关于Python 2中使用:

  • 2**31 - 1 = 2147483647;
  • 2**63 - 1 = 9223372036854775807。

我的问题是:sys.maxsizePython 2 中可以采用哪些可能的值?这两个部分是可能的值吗?是否还有其他可能的值(例如,在其他平台或操作系统上)?找到它也可以在 Python 3 中使用的可能值会很有趣。

相关问题:

python int max-size python-2.7 python-3.x

1
推荐指数
1
解决办法
1040
查看次数