小编Nik*_*las的帖子

单击面板时丢失焦点在JTextField上

当用户点击主面板时,我想失去对JTextField的关注.

setFocusable(true) 不适合我.

如果我点击主面板,JTextField仍然是焦点,你可以输入内容.

注意:我的JFrame设置为可聚焦(true).

java swing focus jpanel jtextfield

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

Qt list.clear()会破坏对象吗?

假设我有以下列表:

QList<Type*> list;
list.add(new Type());
list.add(new Type());
list.add(new Type());
list.add(new Type());
list.add(new Type());
list.add(new Type());
Run Code Online (Sandbox Code Playgroud)

如果我想清空列表,我可以打电话 list.clear()

它会自动删除每个指针,还是必须执行以下操作以防止内存泄漏:

foreach (Type* t, list) delete t;
list.clear();
Run Code Online (Sandbox Code Playgroud)

c++ qt qlist qtcore

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

如何正确删除和终止QThread

我有一个MyClass继承自的子类QThread.

我用这个MainWindow实例的父代创建它(这个):

mMyClass = new MyClass("some_value", 1, 5L, this);
Run Code Online (Sandbox Code Playgroud)

我对Qt如何处理对象删除的理解是,QObject当父项被删除时,每个父母都会被删除.

如果我的程序完成,我会收到警告 QThread: Destroyed while thread is still running

我怎样才能解决这个问题?我在解构器中使用以下代码尝试了它MainWindow.不幸的是它无法正常工作:

if (mMyClass != 0 && mMyClass->isRunning()) {
    mMyClass->deleteLater();
    mMyClass->quit();
    mMyClass->wait();
}
Run Code Online (Sandbox Code Playgroud)

c++ qt qthread qobject

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

Androidmanifest xml不存在或根标记不正确

将我的app/src/main目录app/src/bk重命名为使用Android Studio中的重命名功能后,我收到以下错误消息:

Androidmanifest xml不存在或根标记不正确

我已经从这里尝试了所有给出的答案.不幸的是他们都没有工作.我也查看了一份问题报告.

有没有办法让这个工作?

我复制bk目录并将其重命名为main错误的那一刻消失了,我可以构建应用程序.

android gradle android-studio

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

创建Outlook应用程序对象引用未设置为对象的实例

您好我正在创建一个新的Outlook.Application(使用v.14.0.0.0 Office库)并使用C#检索收件箱电子邮件.只有当outlook没有运行时,我才会收到错误

'你调用的对象是空的'

在警报中(由第一行发生).程序是提前运行的(甚至没有进入catch部分).

try {
    Outlook.Application outlookApplication = new Outlook.Application();
    Outlook.NameSpace mapiNameSpace = outlookApplication.GetNamespace("MAPI");
    Outlook.MAPIFolder folder = mapiNameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);

    foreach (Object obj in folder.Items) {
        if (obj is Outlook.MailItem) {
            Outlook.MailItem mailItem = (Outlook.MailItem)obj;
        }
    }
} catch (Exception e) {
    Console.WriteLine("Unfortunately an error occurred");
    Console.WriteLine(e.Message);
}
Run Code Online (Sandbox Code Playgroud)

这个烦人的警报有什么解决方案吗?我可以抑制它或解决问题吗?

警报来自Outlook实例,我可以看到它,因为在导航栏中打开了Outlook实例(小警报对话框).

c# outlook reference object instance

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

水平和垂直居中QTextEdit的文本

我想水平和垂直居中我的QTextEdit文本.

我尝试了这个,但它没有用.

m_myTextEdit = new QTextEdit("text edit", m_ui->centralWidget);
m_myTextEdit->setGeometry(5, 50, 400, 250);
m_myTextEdit->setReadOnly(true);
m_myTextEdit->setAlignment(Qt::AlignCenter);
Run Code Online (Sandbox Code Playgroud)

有没有机会将它设置为以StyleSheet为中心?

c++ qt qtextedit qtstylesheets

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

Qt在课堂上自己的枚举

我想在Qt中的类中声明我自己的枚举并将其用于信号和插槽,但是我得到了这个错误.

QObject::connect: Cannot queue arguments of type 'ClassA::MyEnum'
(Make sure 'ClassA::MyEnum' is registered using qRegisterMetaType().)
Run Code Online (Sandbox Code Playgroud)

这是我的源代码:

ClassA.h

public:
    enum MyEnum {
        READING = 0,
        STOPPED = 1,
        FINISHED = 2
    };

signals:
    void changed(QString text, int readTextInPercent, ClassA::MyEnum status);
Run Code Online (Sandbox Code Playgroud)

ClassA.cpp

emit changed(QString("string"), 50, ClassA::READING);
Run Code Online (Sandbox Code Playgroud)

ClassB.h

public slots:
    void changed(QString text, int readTextInPercent, ClassA::MyEnum status);
Run Code Online (Sandbox Code Playgroud)

ClassB.cpp

this->connect(m_ClassA, SIGNAL(changed(QString, int, ClassA::MyEnum)), this, SLOT(changed(QString, int, ClassA::MyEnum)));

void ClassB::changed(QString text, int readTextInPercent, ClassA::MyEnum status) {

}
Run Code Online (Sandbox Code Playgroud)

我不知道在哪里以及我必须使用哪个参数qRegisterMetaType.

c++ enums qt signals-slots

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

在IntelliJ中打开当前文件,使用Sublime

有没有办法说当前选择的文件应该用Sublime或任何其他外部编辑器打开?

我知道Main Menu -> Navigate -> Select In... -> 8在finder或任何其他合适的文件浏览器中打开文件的快捷方式.从那里我可以在Sublime打开它,虽然这对我来说太过分了.

那么任何直接在Sublime中打开文件的花哨的makros /插件?

intellij-idea sublimetext sublimetext3

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

Android Espresso意图

我的测试文件如下所示:

@RunWith(AndroidJUnit4.class)
@LargeTest
public class CreateNewSessionActivityTest {
    @Rule
    public IntentsTestRule<CreateNewSessionActivity> mActivityRule = new IntentsTestRule<>(CreateNewSessionActivity.class);

    @Test
    public void test() {
        final Intent intent = new Intent();
        intent.setAction(Intent.ACTION_SEND);
        intent.setType("text/plain");
        intent.putExtra(Intent.EXTRA_TEXT, "this is my auth token");

        final Instrumentation.ActivityResult result = new Instrumentation.ActivityResult(Activity.RESULT_OK, intent);

        intending(hasComponent(hasShortClassName(".CreateNewSessionActivity"))).respondWith(result);

        onView(withId(R.id.create_new_session_auth_token_edit_text)).check(matches(isDisplayed()));
        onView(withId(R.id.create_new_session_auth_token_edit_text)).check(matches(withText("this is my auth token")));
    }
}
Run Code Online (Sandbox Code Playgroud)

CreateNewSessionActivity.onCreate方法中,我执行以下操作:

final Intent intent = this.getIntent();

if (intent != null) {
    final String action = intent.getAction();
    final String type = intent.getType();

    if (Intent.ACTION_SEND.equals(action) && type != null) {
        if …
Run Code Online (Sandbox Code Playgroud)

android intentfilter android-intent android-espresso

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

如何获取 Android Gradle 插件正在使用的 R8 版本?

我如何才能找出 Android Gradle 插件正在使用哪个版本的 R8,比如说 4.0.1?

buildscript {
  repositories {
    google()
    mavenCentral()
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:4.0.1'
  }
}
Run Code Online (Sandbox Code Playgroud)

android android-r8

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