小编Rom*_*dgz的帖子

单击时更改JButton文本

我创建了一个扩展JDialog的类,我有一些复选框和3个按钮:accept,cancel和select all.

当用户单击全选时,应检查每个复选框,如果再次单击,则应取消选中每个复选框.这工作正常,但我也希望按钮的文本在"全选"和"取消全选"之间切换.我在那里遇到了麻烦,所以当用户点击按钮并且文本更改为"取消全选"时,该按钮会消失.

我把课程简化为最简单的形式:

    public class NodeSelectionCheckBoxJDialog extends JDialog {
    public enum Options {ACEPT, CANCEL};
    private Options selectedOption;
    private JButton allButton;
    private boolean allCheckBoxesSelected;
    private JButton aceptButton;

    public NodeSelectionCheckBoxJDialog(){
        super(MainFrame.getInstance());
        this.setTitle("Select nodes to apply");
        this.setModal(true);

        selectedOption = Options.CANCEL;
        nodeCheckBoxesSet = new HashSet<NodeCheckBox>();

        try {
            initComponents();
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
        }

        this.pack();
        this.setLocationRelativeTo(null);
        this.setVisible(true);
    }

    private void initComponents() throws Exception {
        this.getContentPane().add(createActionButtons(), BorderLayout.SOUTH);
    }

    private Component createActionButtons() {
        JPanel buttonsPanel = new JPanel();
        allCheckBoxesSelected = false; …
Run Code Online (Sandbox Code Playgroud)

java swing jbutton

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

不同类别的Qt信号和插槽

我有一个带插槽的X类,一个带信号的Y类。我正在建立来自类X的连接,并在类Y中创建了一个公共方法来发出来自类X的信号(我不确定此步骤是否必要)。

然后,如果我从类X调用该方法,则发出信号,并执行slot。但是,如果我从类Y发出信号,则插槽将永远不会执行,我也不明白为什么。

我也可以在Y班上建立联系吗?

此伪代码试图解释我想要什么:

class X  : public QWidget {
    Q_OBJECT

X(){
    connect(Y::getInstance(), SIGNAL(updateSignal(int)), this, SLOT(updateStatus(int)));
    Y::getInstance().emitSignal(someValue); // Works
}

public slots:
    void updateStatus(int value);

}

class Y : public QObject {

Q_OBJECT

Y(){

}

public:
    Y getInstance();
    void emitSignal(int value) { 
        emit updateSignal(value);
    }


signal:
    void updateSignal(int value);
}

class Z : public Y {
Z(){

}

init(){
 emitSignal(someValue); // Doesn't work
}
}
Run Code Online (Sandbox Code Playgroud)

c++ qt signals-slots

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

Linux - 用 Python 模拟鼠标点击

我想在 Linux 系统(Ubuntu)中模拟 Python 中的鼠标点击(如果可能的话,还有键盘输入),所以我能够为外部程序创建一个宏。

我研究了一下,发现这样的问题该使用WIN32API或ctypes的做这项工作。但由于我在 Ubuntu 中工作,这些不适合我。

我还发现了Xaut(前 Xautomation),据说它可以模拟 Linux 系统上的鼠标和键盘交互。但是对我来说很难安装,而且它也缺少文档和示例。

我真的很喜欢 win32api 解决方案,它非常简单。Linux没有类似的解决方案吗?

python linux mouse

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

是否可以使用括号初始值设定项擦除结构数组?

我想知道:我有一个包含一些数据的结构数组。如果我想擦除所有数据并将所有值保留在结构数组中作为默认值,是否可以使用 C++11 括号初始值设定项?

#include <iostream>

using namespace std;

typedef struct{
 int i;
 char a;
}mystruct;

int main()
{
    mystruct structure[2];
    structure{};
    structure[0].i = 69;
    cout << structure[0].i << endl; // Should print 69
    structure{};
    cout << structure[0].i << endl; //Should print 0

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

编辑:目前我的编译器说预期;{ 之前,所以它似乎无法识别大括号初始值设定项。

c++11

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

std :: vector <Object> reserve方法是否需要Object类的复制构造函数?

我试图将一些点保留到std :: vector中,并且出现错误我不明白:

#include <iostream>
#include <string>
#include <vector>

using namespace std;

class Foo{
public:    
    std::string str;
    int i;

    Foo(){
        this->str = "";
        this->i = 0;
    }

    Foo(Foo &copyFoo){
        this->str = copyFoo.str; //Or get methods if private members
        this->i = copyFoo.i;
    }

    Foo(std::string str, int i){
        this->str = str;
        this->i = i;
    }
};

int main()
{
   std::vector<Foo> fooVector;
   fooVector.reserve(20); // Error

   for(int i=0; i<20; i++){
       fooVector[i] = Foo("Test", i); // Or should I use operator new?
       // Or should …
Run Code Online (Sandbox Code Playgroud)

c++ vector c++11

3
推荐指数
2
解决办法
2732
查看次数

基于范围的循环:自动更改意味着在C++ 11中

我试图在C++ 11中制作像这样的基于范围的lopp:

std::vector<Satellite> Satellites; // Class member
//...

int number = 1;
for(auto sat : this->Satellites) {
    sat.setNumber(number++);
}
Run Code Online (Sandbox Code Playgroud)

而且我收到了这个警告:

'auto'改变了C++ 11中的含义; 请删除它[-Wc ++ 0x-compat]

当然我可以坚持for(Satellite sat : this->Satellites),但我试图测试auto关键字.

我曾经读过使用C++ 11可以使用auto,但是最近我发现自从C++ 0x以来它已经改变了(或者看起来它已经改变了!):

关键字auto不是新的; 它实际上可以追溯到ANSI C之前的时代.但是,C++ 11改变了它的含义; auto不再指定具有自动存储类型的对象.相反,它声明了一个对象,其类型可以从其初始化器中推导出来.从C++ 11中删除了auto的旧含义以避免混淆.

那么:我能用这样的C++ 11和我的问题是在IDE(Eclipse CDT Juno),或者我应该以不同的方式使用它(或者根本不删除auto关键字)?

c++ auto c++11

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

很棒的字体不显示其图标

花了几分钟想知道为什么 Font Awesome 图标没有出现在我的应用程序中,但是在编写了这个超简单的小提琴之后,我发现即使代码很少,它们也根本没有出现。

我只是加载 CDN 并插入一个如下所示的图标:

<!-- Font awesome stylesheet -->
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">

<i class="fa fa-camera-retro fa-5x">This is a camera</i>
<i class="fa fa-icon-remove fa-2x" style="color: red;">This is an X</i>
Run Code Online (Sandbox Code Playgroud)

我缺少什么?

html css twitter-bootstrap font-awesome

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

使用Twitter Bootstrap模式按钮时获取e.relatedTarget

我编写了代码,用于在单击按钮时显示模态,目的是在模态内编辑按钮的文本.

我的意图是有很多按钮,所以不是通过id获取它们,而是在调用模态时使用e.relatedTarget以便知道哪个按钮已调用并从按钮获取文本以便我可以在模态.

但是当我在模态下编辑文本并单击确定按钮时,问题就出现了.我不知道如何从那里访问e.relatedTarget.

HTML:

<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">Change this text</button>
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span>
                </button>
                 <h4 class="modal-title" id="exampleModalLabel">New message</h4>

            </div>
            <div class="modal-body">
                <form>
                    <div class="form-group">
                        <label for="text-to-edit" class="control-label">Edit text:</label>
                        <input type="text" class="form-control" id="text-to-edit">
                    </div>
                </form>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                <button type="button" class="btn btn-primary">Send message</button>
            </div>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

JS:

$('#exampleModal').on('show.bs.modal', function (event) {
    var button = $(event.relatedTarget) // …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery twitter-bootstrap

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

在 Django 中下载简单的文本文件

到目前为止,我正在尝试使用 Django 提供一个简单的文本文件,但没有成功。我认为我的 Django 代码没问题:

def status(request):
    # Get data from database
    parameters = get_parameters_from_database()
    if request.method == "GET":
        // Stuff here to render the view for a GET request
        return render_to_response('myapp/status.html', {'page_name': 'status', 'parameters' : parameters})

    elif request.method == "POST":
        if request.POST['request_name'] == 'download_txt':
            file_path = parameters['file_path']
            with open(file_path, 'rb') as fsock:
                response = HttpResponse()
                response['content_type'] = 'text/plain'
                response['Content-Disposition'] = 'attachment; filename=current.txt'
                response.write(fsock.read())
                print(response)
                return response
Run Code Online (Sandbox Code Playgroud)

当收到 POST 请求时,它会在 webserver 控制台中打印以下内容,所以我认为没关系:

<HttpResponse status_code=200, "text/html; charset=utf-8">
Run Code Online (Sandbox Code Playgroud)

所以我认为问题在于我没有在 Jquery 的 Ajax …

django ajax jquery

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

拉伸因子在Qt中如何工作?

我正在使用pyqt5开发GUI应用程序。在某个对话框中,我需要许多组件,作为QWebEngineView的组件之一,可以作为绘制数据的画布,即使创建对话框时图表尚未准备就绪,该组件也应占用大部分可用空间。

我希望它看起来像这样: 在此处输入图片说明

我调查并发现了拉伸因子。我看到QSizePolicy仅直接适用于小部件,而不适用于布局,如本SO答案所示。但是后来我看到方法addWidget和addLayout允许我在QBoxLayout的方向上设置拉伸因子,这对于我的意图来说似乎是理想的。

所以我尝试了:

from PyQt5.QtWidgets import QWidget, QLabel, QVBoxLayout, QHBoxLayout
from strategy_table import StrategyTable

layout = QVBoxLayout()
layout.addWidget(QLabel("Strategy components"))

# Upper layout for a table. Using a 30% of vertical space
upper_layout = QHBoxLayout() # I'm using a HBox because I also want a small button at the right side of the table
self.table = StrategyTable(self) # Own class derived from QTableWidget
upper_layout.addWidget(self.table)

add_button = QPushButton('Add')
add_button.clicked.connect(self._show_add_dialog)
upper_layout.addWidget(add_button)
layout.addLayout(upper_layout, 3) # Setting 20% of size with the …
Run Code Online (Sandbox Code Playgroud)

python pyqt pyqt5 qlayout

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